Aller au contenu

Haproxy-B


chr!x

Messages recommandés

Salut,

Dans le prolongement de j'ai ouvert ce sujet pour répondre aux questions qui m'assaillent quant à la mise en oeuvre de HAProxy.

Oui tu as bien compris, en fait, tu peux faire toute sorte de règle pour rediriger un frontend (écoute le HTTP sur le port 5080) vers un backend (service web tournant sur le syno, ou ailleurs sur ton réseau comme SABnzbd, SickBeard, WebDAV, AudioStation, etc.)

Par exemple:

* box.mondomain.tld => 192.168.1.254:80

Vu que l'écoute est faite sur le port 5080, ton exemple ne devrait-il pas plutôt être ? :

* box.mondomain.tld:5080 => 192.168.1.254:80

Est-ce que par la suite on peut imaginer :

* smtp.mondomain.tld => 192.168.1.254:25

* ssh.mondomain.tld => 192.168.1.254:22

etc... ?

Ca marche avec les NDD xxx.hd.freebox.fr si et seulement si les sous domaines sont possibles. Par exemple il faut que sickbeard.xxx.hd.freebox.fr pointe bien vers chez toi.

Si j'en juge par mes premiers tests, la réponse serait non... Ca n'est pas ton avis ?

Mac-mini-de-Chrix:~ chrix$ traceroute xxx.hd.free.fr

traceroute to xxx.hd.free.fr (88.165.136.37), 64 hops max, 52 byte packets

1 192.168.1.1 (192.168.1.1) 0.983 ms 0.599 ms 0.631 ms

2 1.107.94.80.static.monaco.mc (80.94.107.1) 36.957 ms 36.965 ms 36.680 ms

3 192.168.18.229 (192.168.18.229) 37.396 ms 37.809 ms 37.635 ms

4 172.26.1.133 (172.26.1.133) 37.057 ms 37.619 ms 37.744 ms

5 172.26.1.78 (172.26.1.78) 43.485 ms 42.671 ms 42.981 ms

6 vlan530.icore1.wi3-milan.as6453.net (195.219.166.1) 43.567 ms 52.677 ms 53.607 ms

7 if-1-0-0-96.core3.mlt-milan.as6453.net (195.219.158.29) 42.275 ms 42.365 ms 41.899 ms

8 if-10-1403.tcore1.pvu-paris.as6453.net (80.231.153.45) 60.754 ms 63.349 ms 59.939 ms

9 195.219.241.174 (195.219.241.174) 59.219 ms 58.995 ms 58.333 ms

10 lyon-crs16-1-be2000.intf.routers.proxad.net (212.27.59.30) 66.289 ms 67.130 ms 66.625 ms

11 lyon-crs8-2-be1000.routers.proxad.net (212.27.56.158) 67.779 ms 66.671 ms 71.854 ms

12 nice-6k-1-po5.intf.routers.proxad.net (212.27.59.154) 72.352 ms 72.164 ms 71.973 ms

13 bso06-2.dslg.proxad.net (213.228.12.195) 73.169 ms 72.631 ms 72.917 ms

14 *^C

Mac-mini-de-Chrix:~ chrix$ traceroute sabnzbd.xxx.hd.free.fr

traceroute to sabnzbd.xxx.hd.free.fr (67.215.66.132), 64 hops max, 52 byte packets

1 192.168.1.1 (192.168.1.1) 0.933 ms 0.613 ms 0.531 ms

2 1.107.94.80.static.monaco.mc (80.94.107.1) 36.673 ms 36.788 ms 36.658 ms

3 192.168.18.229 (192.168.18.229) 36.931 ms 37.377 ms 37.953 ms

4 172.26.1.66 (172.26.1.66) 45.666 ms 37.607 ms 37.983 ms

5 172.26.1.70 (172.26.1.70) 55.754 ms 56.333 ms 77.596 ms

6 ae0-1321-xcr1.par.cw.net (208.175.146.109) 56.412 ms 55.447 ms 55.474 ms

7 xe-11-2-0-xcr1.prp.cw.net (195.2.9.57) 65.495 ms 65.414 ms 65.673 ms

8 xe-9-2-0-xcr1.fra.cw.net (195.2.9.46) 64.789 ms 65.385 ms

xe-1-0-0-xcr1.fra.cw.net (195.2.9.54) 65.043 ms

9 xe-0-0-1-xcr1.fix.cw.net (195.2.28.202) 65.306 ms

xe-11-2-0-xcr1.fix.cw.net (195.2.28.222) 65.007 ms 101.224 ms

10 xe-0.de-cix.frnkge03.de.bb.gin.ntt.net (80.81.192.46) 65.688 ms 67.837 ms 66.613 ms

11 ae-1.r02.frnkge03.de.bb.gin.ntt.net (129.250.4.163) 67.500 ms 67.862 ms 67.528 ms

^C

Le 1er traceroute va bien vers l'IP de chez moi, le second pointe vers une IP chez OpenDNS...

Modifié par chr!x
Lien vers le commentaire
Partager sur d’autres sites

Je vais récupérer mon ndd perso (aujourd'hui pointant ailleurs), rapatrier sur le Syno le petit joomla qui y tourne, et je reviens à l'assaut dès que c'est en place.

En attendant, je te relance sur mes précédentes questions restées en suspend :

Oui tu as bien compris, en fait, tu peux faire toute sorte de règle pour rediriger un frontend (écoute le HTTP sur le port 5080) vers un backend (service web tournant sur le syno, ou ailleurs sur ton réseau comme SABnzbd, SickBeard, WebDAV, AudioStation, etc.)

Par exemple:

* box.mondomain.tld => 192.168.1.254:80

Vu que l'écoute est faite sur le port 5080, ton exemple ne devrait-il pas plutôt être ? :

* box.mondomain.tld:5080 => 192.168.1.254:80

Est-ce que par la suite on peut imaginer :

* smtp.mondomain.tld => 192.168.1.254:25

* ssh.mondomain.tld => 192.168.1.254:22

etc... ?

Lien vers le commentaire
Partager sur d’autres sites

Attention, il ne faut pas confondre les protocoles. On parle là de protocole HTTP.

On définit un frontend qui écoute sur le port 5080 du Syno pour des requêtes HTTP.

En fonction de la tête de la requête on fait le proxy vers tel ou tel backend (sabnzbd, sickbeard, etc.)

Ca marche car dans une requête HTTP, le nom de domaine utilisé pour résoudre l'IP est passé dans le header "Host" que HAProxy peut lire.

Dans le cas d'une requête TCP pure, on ne peut pas voir quel est le nom de domaine qui a servi à résoudre l'IP puisque ça ne fait pas parti des données envoyées par une requête TCP. http://en.wikipedia.org/wiki/OSI_model

Lien vers le commentaire
Partager sur d’autres sites

Parfait. Merci d'avoir levé cette ambiguité.

J'ai donc transféré mon NDD vers mon Syno (c'est en cours de rafraichissement vu les temps de propagation), et j'ai déjà pu mener quelques tests. En effet, tous les "nattages" qui fonctionnaient avec mon xxx.hd.free.fr marchent aussi avec mondomain.tld, j'arrive bien sur le Syno (SABnzbd / DSM / etc...)

Ensuite, voici ma conf actuelle en 2 screenshots :

nas_haproxy_ss01.jpg

nas_haproxy_ss02.jpg

J'ai uniquement édité le backend de SABNZBD pour qu'il bascule sur le bon port (9050 chez moi au lien de 8080).

Malheureusement, quelques soient mes URL, ca tape toujours sur le DSM :

* sabnzbd.mondomain.tld => sabnzbd.modomain.tld:5000/webman/index.cgi

* haproxy.mondomain.tld => haproxy.modomain.tld:5000/webman/index.cgi

Même ceux qui ne sont pas définis dans le backend redirigent vers le DSM sur le même modèle :

* toto.mondomain.tld => toto.modomain.tld:5000/webman/index.cgi

* pokemon.mondomain.tld => pokemon.modomain.tld:5000/webman/index.cgi

Il y a malgré tout un truc qui me chagrine, c'est cette histoire d'écoute sur le 5080 par HAProxy. Faut-il reformuler les URL avec :5080 à la fin ? Genre :

* haproxy.mondomain.tld:5080

* sabnzbd.mondomain.tld:5080

Car si c'est le cas, même combat, je déboule toujours sur le DSM...

Modifié par chr!x
Lien vers le commentaire
Partager sur d’autres sites

C'est le cas. Je suis derrière une Freebox v6, j'ai forwardé son 80 vers le 5080 du Syno.

nas_haproxy_ss03.jpg

Edit:

Certainement rien à voir... Je m'aperçois à l'instant que dans le gestionnaire de paquets, si je fais "Plus" sur certains (ex : phpMyAdmin), l'URL qui m'est donnée est préfixée avec sickbeard... Pourquoi sickbeard et pas un autre ? Et pourquoi sur ce domaine plutôt qu'un autre ?

nas_haproxy_ss04.jpg

Edit 2 (et puis dodo) : J'ai tenté un reboot complet du Syno, aukazou, ça n'a rien changé.

Modifié par chr!x
Lien vers le commentaire
Partager sur d’autres sites

Là ça commence à marcher ^_^

Il faut refaire toutes les associations avec http ?

Edit : Pour SABnzbd, je tape le login/pwd, le title de la page s'affiche, mais ca tourne en permanence sans rien afficher. En revanche, la page d'HAProxy (après login/pwd) s'affiche sans encombre).

Quand au DSM, ca redirige vers http://dsm.mondomain...ebman/index.cgi et j'ai un 404 made in Synology :

Désolé, la page que vous recherchez est introuvable.

nas_haproxy_ss05.jpg

Modifié par chr!x
Lien vers le commentaire
Partager sur d’autres sites

Pour SABnzbd et SickBeard je crois qu'ils font des redirect en écrivant en dur le http:// alors que l'on y accède par https:// ce qui fait que l'on atterrit sur le 5080 qui n'a pas de sickbeard. de configuré donc on arrive sur le backend par défaut : web.

Bref, ça pète parce que les applications ne sont pas bien codées pour cette utilisation. Je n'ai pas de pb avec NZBGet ni CouchPotato Server.

Et puis le SPK est en beta donc la conf par défaut est perfectible.

Lien vers le commentaire
Partager sur d’autres sites

Premiers retours de mes expérimentations, des fois que cela puisse servir à faire évoluer la bêta.

Après avoir créé les associations adhoc:

* http://dsm.mondomain.tld = OK

* http://sab.mondomain.tld = OK (sadnzbd / port 9050 chez moi / parfait)

* http://plex.mondomain.tld = OK (plex / port 32400 / par contre faut rajouter /manage pour que ca marche)

* http://sick.mondomain.tld = OK (sickbeard / port 8081 / parfait)

* http://fbx.mondomain.tld = OK (freebox serveur / 192.168.1.x:80 / parfait)

Je dois mener encore d'autres essais, mais c'est concluant pour le moment.

Questions :

* HAProxy sait-il faire une relation du type xxx.mondomain.tld => localhost:port/rep ?

* Si on est en multi-domaines, HAProxy sait-il faire le tri ou les redirections sont-elles valable pour les 2 domaines ?

* Les premiers temps de chargement sur les asso ci-dessus sont véritablement très long (de l'ordre de 10 à 30 secondes. Après, mieux. Normal ?

Curiosité: depuis ce matin, lorsque j'enregistre la config suite à l'ajout de backend et/ou association, je n'ai plus la fenêtre de confirmation qui apparait dans le DSM.

Edit: l'appli iPhone SABMobile et le plugin Chrome SABconnect++ fonctionnent parfaitement avec sab.mondonain.tld via le port 80:)

Modifié par chr!x
Lien vers le commentaire
Partager sur d’autres sites

@CHr!x tu as testé avec les appli synology pour iphones ( dsphoto, DsFile, dsaudio, Dssownload)..?

DS finder:

URL = http://dsm.mondomain.tld, port 80, login & pwd, donc ça marche.

DS file:

passe par le port 5005, donc HAProxy inutile, donc ne marche pas.

DS photo+ / DS download / DS audio:

Passe par le port 5000, donc HAProxy inutile, donc ne marche pas.

DS video:

Pas testé. D'après la doc officielle, passe par le port 5000, donc HAProxy inutile, donc ne DEVRAIT pas marcher.

N'oubliez pas que HAProxy traite ce qui arrive sur le port 80 du modem/routeur en amont.

Modifié par chr!x
Lien vers le commentaire
Partager sur d’autres sites

je comprend pas , je pensais que le but était sensiblement le même que de faire du reverse proxy sous appache , cad , permettre de faire passer des flux http au travers du port 80 par exemple pour les rediriger en local sous d'autres ports .. J'avais déja tenté le reverse proxy et ca donnait en gros : Music.nondedomaine ( qui vise une IP ) , ca passe par le port 80 du routeur et ensuite ca redirige vers l'adresse spécifiée genre localhost:portdeaudiostation.

Donc quand tu met en fronthend le port 80 et en backhend un autre port , peu importe que audiostation utilise 5000 peu importe non? ( remarque aussi : on peut attribuer des ports spécifiques à toutes ces applications .. )

EDIT :

DS finder:

URL = http://dsm.mondomain.tld, port 80, login & pwd, donc ça marche.

DS file:

passe par le port 5005, donc HAProxy inutile, donc ne marche pas.

DS photo+ / DS download / DS audio:

Passe par le port 5000, donc HAProxy inutile, donc ne marche pas.

DS video:

Pas testé. D'après la doc officielle, passe par le port 5000, donc HAProxy inutile, donc ne DEVRAIT pas marcher.

N'oubliez pas que HAProxy traite ce qui arrive sur le port 80 du modem/routeur en amont.

En fait je viens de comprendre , tu n'utilise pas de port spécifiques pour les appli.. EN gros tout devrait marcher si t'attribuer un port spécifique à chaque application ! ( normalement )

Modifié par jee27
Lien vers le commentaire
Partager sur d’autres sites

Diaoul a raison, je n'ai pas cherché plus loin que le bout de mon nez, et en fait DS audio, DS files & DS download fonctionnent. Faut dire qu'il y avait une petite erreur de port dans le backend "audio" qui renvoyait sur le 8800 alors que c'est le 5000.

D'ailleurs, dans le cas présent AUDIO, PHOTO+ et DOWNLOAD passent par le 5000. J'ai déjà une règle qui traite ce port, c'est DSM. Je corrige donc ce que j'ai écris tantôt :

DS download / DS audio :

Non SSL : dsm.mondomain.tld:80 / login / pwd / HTTPS = OFF CA MARCHE (le :80 est obligatoire, sinon ca marche pas sans...)

SSL : dsm.mondomain.tld:443 / login / pwd / HTTPS = ON CA MARCHE

DS file (passe par le port 5005, donc usage du backend "webdav") :

Non SSL : webdav.mondomain.tld / login / pwd / HTTPS = OFF CA MARCHE

SSL : (( pas testé ))

Par contre, DS photo+ NE MARCHE PAS. Rien à faire ;-(

Et DS video, pas testé.

EDIT: je vais tutoriser tout ça avec chaque appli, en SSL ou pas :) On s'affole pas :lol:

Modifié par chr!x
Lien vers le commentaire
Partager sur d’autres sites

merci Chr!x pour ces précisions ! par contre package pas dispo pour un ds212 ...

L'ami Diaoul, de par son expertise en cross-compil, devrait avoir un avis sur la question...

Par contre, j'ignore s'il s'agit d'un bug (ou pas), mais il est écrit dans la doc du package que "Supprimer un Frontend ou un Backend supprimera aussi toutes leurs Associations". J'ai supprimé un backend, l'association était toujours la, malgré un enregistrement.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.