Aller au contenu

Haproxy - Tant De Questions...


Messages recommandés

Salut à tous !!


Je me décide à ouvrir ce topic afin d’obtenir de l’aide sur la configuration de HAProxy qui m’a été conseillé au cours de mes longues pérégrinations dans le monde des reverse proxy et virtual host (je n'ai pas encore pu obtenir ce que je désirais par cette voie).

J’avais posté ici : mais il me parait plus simple de concentrer dans un nouveau sujet mes soucis.

J’ai tenté la doc mais l’Anglais me pique un peu les yeux et les informations trouvées ici sont assez maigres…

J’ai plusieurs questions mais commençons par le commencement :


1. Avec la configuration par défaut, j’arrive bien à accéder aux app du Syno en https (https://app.domaine.tld). Je ferai de l’http plus tard (simplement des associations right ?). Ce que je souhaite faire pour l’heure, c’est faire pointer tout mes sites web (sous-dossiers dans web) vers des sous-domaines mais ça ne donne rien. Généralement je pointe vers la page de log de ma Freebox...


J’ai tenté des trucs du genre :

Nom (est-ce important ?) : site

Serveurs : site localhost:80/site/

Pour le backends

Et : if { hdr_beg(Host) -i site. } pour la condition en association (c'est bien là qu'on renseigne le sous-domaine hein?)


Où me trompe-je ? Le truc, c‘est que depuis que je suis passé à HAProxy, mes sites web sont « down » et j’en ai besoin pour le boulot…


2. Autre interrogation : quid de Photo Station ? J’ai cru voir que certains utilisaient un backends www mais pourquoi et comment ? N’est-il pas possible d’avoir http://photo.domaine.tld ?

D’autres questions suivront après je pense… Merci pour vos lumières!!

Au passage, merci à Diaoul pour cette app qui promet de belles choses.

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

As-tu regardé la doc intégrée à DSM ?

Je ne connais pas de moyen de rediriger vers un dossier /site/ et je ne pense pas que ce soit possible. Je vais tenter d'expliquer pourquoi.

Mettons que l'on réussisse : HTTP -> (app.domain.tld) -> HAProxy -> (domain.tld/app) -> Serveur

Le Serveur va donc croire à une requête sur /app donc il va mettre tout les liens relatifs de la page avec /app. HAProxy va renvoyer la page avec les liens en /app tel quel et dès que tu vas cliquer sur un lien ça va déconner, voir même sans cliquer, si tu as des images ou des balises script à charger.

HAProxy c'est pas un serveur, il ne servira pas le contenu du Serveur à la place de ce dernier.

Une solution consiste donc à mettre chaque site sur un port puis à utiliser HAProxy pour faire le lien.

Une autre consiste à laisser la gestion de ces VirtualHost à apache via la configuration des Hotes Virtuels de DSM et en permettant à HAProxy de forwarder les requêtes sur les sous domaines concernés.

PhotoStation est un alias dans la configuration d'Apache, le problème est le même que pour les dossiers.

Lien vers le commentaire
Partager sur d’autres sites

Re!

Merci beaucoup de me répondre ;-)

Merde quand même, ça, je m'y attendais pas... Cependant, je crois comprendre le problème (même si j'étais persuadé que HAProxy était LA solution pour ne plus avoir à gérer des virtual hosts).

Somme toute, je crois que la solution suivante:

Une solution consiste donc à mettre chaque site sur un port puis à utiliser HAProxy pour faire le lien.

pourrait me convenir... Pourrais-tu un peu détaillé stp? Je t'explique l'enjeu de tout ce bordel que je cherche à mettre en place depuis un bon bout de temps maintenant:

accéder à mes sites sous la forme: http(s)://site.domaine.tld

et faire en sorte que TOUT ce qui se présente sous la forme: http(s)://domaine.ltd/site soit bloqué! C'est chaud ça?

Pour Photo Station, on fait comment alors?

Je ne vois pas trop comment car il n'est pas possible de définir des ports pour cette application (alors que DSM le propose, donc bizarre).

Du coup: http://photo.domaine.ltd ou http://domaine.ltd/photo (en https aussi pour les deux cas), ben ça risque de pas fonctionner...

Enfin, j'ai cru comprendre que certains avaient créer des backends avec www. Hors, www, c'est un sous-domaine ça nan?

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

Up!

Je suis en train de finaliser ma configuration. Elle pique les yeux et ressemble pas mal à du bidouillage mais je la posterai ici afin qu'elle puisse servir à d'autre...

En attendant, question hyper importante pour moi: pour faire fonctionner le webdav, on fait comment? Dois-je rediriger les ports 5005 et 5006 vers les 5080 et 5443?

Avant, via l'explorateur Windows, j'y accédais via http://domaine.com:5005/music (par exemple).

Lien vers le commentaire
Partager sur d’autres sites

Ok...

Donc:

1. je déclare chez mon Host (OVH) un "sous-domaine" webdav.domaine.com

2. je fais le nécessaire sur HAProxy

3. je laisse le routeur tranquille

4. je me connecte avec http://webdav.domaine.com/music ou https://webdav.domaine.com/music (exemple toujours).

J'ai bon?

Pour DSFile sur Android, pourquoi n'as-tu pas mis : file.domaine.com ? C'est ce que j'ai fais et ça marche...

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

Up!

Je m'auto-réponds... La configuration de webdav telle que décrite ci-dessus ça "fonctionne". Enfin, disons que c'est lent en http et ne marche pas du tout en https (la faute à windows 7?).

Diaoul, pourrais-tu préciser ce que tu fais avec du webdav et DSFile?

Et en ce qui concerne ftp et ssh, c'est pas utile de jouer avec HAProxy (on garde les ports ouverts dans le routeur), si?

Lien vers le commentaire
Partager sur d’autres sites

On peut utiliser le backend webdav pour DSFile c'est tout ce que je dis moi. On peut aussi utiliser file.domain.tld.

FTP et SSH sont des protocoles différents de HTTP donc si tu veux multiplexer SSH et HTTP sur un même port (5443 par exemple) c'est possible mais il faut passer le frontend en mode tcp et faire d'autres modifications j'imagine. Nounours44 pourra éventuellement t'expliquer tout ça car je crois qu'il l'utilise ainsi.

Si tu veux plus d'informations que ça il va falloir te pencher sur la documentation officielle de HAProxy.

Lien vers le commentaire
Partager sur d’autres sites

en effet, il est possible de multiplexer plusieurs protocoles sur un même port avec haproxy. Le frontend doit être en mode tcp.

J'utilisais ce mode pour multiplexer du https et du ssh, ça fonctionne plutôt bien mais j'ai constaté une baisse de performances générale à faire comme cela.

Il me semble que haproxy ne sais pas reconnaître le protocole FTP (qui nécessite en plus 2 ports TCP pour fonctionner : 21 et 23).

Maintenant, j'ai préférer laisser tomber SSH, j'utilise GateOne pour accéder à distance à mon Syno.

Lien vers le commentaire
Partager sur d’autres sites

Merci Messieurs pour tous ces renseignements ;-)

Concernant le FTP et le SSH je crois que je vais me compliquer la vie pour rien. Cela ne va rien m'apporter de particulier donc je laisse tomber...

Concernant Webdav... Je viens de percuter sur un truc.

Comme j'ai mis en place HAProxy, je me suis dit que je n'avais plus besoin des redirections 5005 et 5006 sur mon routeur. En les supprimant, je me suis aperçu que je ne pouvais plus accéder à DS File. En cherchant un peu, j'ai compris que DS File utilise le Webdav... Donc il vaut mieux laisser les ports ouverts...

J'aurais encore 2-3 bricoles à demander et je vous poste ma config' pour avis ;-)

Lien vers le commentaire
Partager sur d’autres sites

Ok...

Je sais pas si ça pourra aider certains mais voilà ce que j'ai fais... Je rappelle que l'enjeu me concernant est de bloquer tout ce qui se présente sous la forme http(s)://domaine.com/quelquechose mais que l’accès soit quand même autorisé pour les applications comme Photo Station, Blog de Phtoto Station, Mail Roundcube, etc.

Je précise que bien que configuré je n'utilise pas http(s)://dsm.domaine.com car certaines applications dans DSM ne s'ouvrent du coup plus (en plus de celles que j'ai volontairement limité bien sûr). Du coup j'ai laissé 5000 et 5001 dans le routeur...

So:

1. Virtual Hosts:

6957921virtualhost.jpg

2. Portail Applications:

2590022portail.jpg

3. Frontends:

4234903frontends.jpg

4. Backends:

2620324backends.jpg

(Je pense virer le Backend Web car il ne me sert plus...)

5. Associations:

5630555asso1.jpg

8472966asso2.jpg

La config' postée par tonymans72 m'a aidé également.

Mais j'ai encore un peu besoin d'aide:

1. A la vue de cette configuration, par pure commodité, sauriez-vous comment je peux transformer http(s)://phpMyAdmin.domaine.com en http(s)://pma.domaine.com ?

2. Dans le portail des applications, on peut à priori virer tous les ports https puisque tout passe en http en local. C'est bien ça?

Encore merci pour votre aide... ;)

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

Pour webdav il suffit d'indiquer a DSFile le bon port (443) sans quoi il prend 5005 par défaut

Merci pour ton aide ;-) En effet, je viens de faire le test, et ça roule comme ça aussi...

En plus des deux petites questions ci-dessus (portail & phpMyAdmin), je voulais juste savoir si HAProxy était compatible avec la création d'un certificat SSL (car j'ai des problèmes d'accès en https depuis certains postes).

Prochaine étape: mise en place du VPN ;-)

Lien vers le commentaire
Partager sur d’autres sites

Les certificats sont générés depuis ceux que tu as installé dans DSM. Si tu veux les regénérés (parce que tu as installé un nouveau certificat via DSM) il te suffit de cliquer sur le bouton associé via l'interface de HAProxy



Le mieux c'est de laisser tomber l'hote virtuel de phpMyAdmin et de mettre un port HTTP différent. Dans HAProxy, tu configures ton backend pma pour pointer vers ce port.

Enfin, tu associes ce backend avec la condition de ton choix (pma., phpmyadmin., etc.)

Lien vers le commentaire
Partager sur d’autres sites

Les certificats sont générés depuis ceux que tu as installé dans DSM. Si tu veux les regénérés (parce que tu as installé un nouveau certificat via DSM) il te suffit de cliquer sur le bouton associé via l'interface de HAProxy

Le mieux c'est de laisser tomber l'hote virtuel de phpMyAdmin et de mettre un port HTTP différent. Dans HAProxy, tu configures ton backend pma pour pointer vers ce port.

Enfin, tu associes ce backend avec la condition de ton choix (pma., phpmyadmin., etc.)

Côté certificat, je n'ai encore rien fait. Je vais aller me coller un des tutos présents sur le forum. Mais ta réponse me satisfait amplement :D

Pour phpMyAdmin, ça me parait parfait mais le problème c'est comment changer le port http de l'application. Tu penses à l'édition du fichier de config' /var/packages/phpMyAdmin/target/desktop/desktop.cfg ?

Je retourne faire des tests... ;-)

EDIT

Bon, ça "fonctionne" (mais pas exactement tel que tu le décris). Que ce soit le port 80 ou 150 ou whatever dans /var/packages/phpMyAdmin/target/desktop/desktop.cfg , j'arrive à accéder à phpMyAdmin via pma.domaine.com.

Pour info:

1. je n'ai pas eu à modifier le backend ci-dessus (sauf si je veux utiliser un autre port que 80)

2. mon association prends la condition if { hdr_beg(Host) -i pma. }

3. MAIS sans virtual host, ça ne marche pas! Mais à la limite, ça, je m'en fous... Il semble cependant que l'utilisation des hôtes virtuels du DSM soit une condition sine qua non. Sinon 503!

Bref, je crois avoir fait le tour là, sauf si tu as des remarques ;-)

Merci encore pour ta patience!

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

1. A la vue de cette configuration, par pure commodité, sauriez-vous comment je peux transformer http(s)://phpMyAdmin.domaine.com en http(s)://pma.domaine.com ?

2. Dans le portail des applications, on peut à priori virer tous les ports https puisque tout passe en http en local. C'est bien ça?

Encore merci pour votre aide... ;)

1 si tu as deja le virtual host cree, je pense que le plus simple serait de faire un cname de http(s)://pma.domaine.com vers http(s)://phpMyAdmin.domaine.com

2 haproxy marche parfaitement avec les certificats, en revanche avec un gratuit, une adresse de type appli.domaine.com te renverra un message de certificat non verifie

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

1 si tu as deja le virtual host cree, je pense que le plus simple serait de faire un cname de http(s)://pma.domaine.com vers http(s)://phpMyAdmin.domaine.com

2 haproxy marche parfaitement avec les certificats, en revanche avec un gratuit, une adresse de type appli.domaine.com te renverra un message de certificat non verifie

Hello aurelized! 4:33! Ouah, il t'arrive de dormir :D ?

1. C'est à peut prés ce que j'ai fais (cf. ci-dessus) et ça fonctionne super ;-)

2. Là c'est plus embêtant... Je ne m'y suis pas encore collé mais il n'y a pas moyen de contourner ça? Car des appli.domaine.com, ben j'en ai pas mal... Si tu as un tuto à me conseiller...

Lien vers le commentaire
Partager sur d’autres sites

Hello aurelized! 4:33! Ouah, il t'arrive de dormir :D ?

1. C'est à peut prés ce que j'ai fais (cf. ci-dessus) et ça fonctionne super ;-)

2. Là c'est plus embêtant... Je ne m'y suis pas encore collé mais il n'y a pas moyen de contourner ça? Car des appli.domaine.com, ben j'en ai pas mal... Si tu as un tuto à me conseiller...

j'habite en Asie :D

tu t en fous de l erreur de certificat en fait, la connection est quand meme cryptee. quelqu un avait propose les lien en domaine/appli plutot que appli.domaine mais personnellement ca me mettait toujours le msg d erreur et c est une galere a faire pour chaque appli puisqu il faut modifier chaque webhost parameter un par un, donc a part la wild card il n y pas d autre solution. Mais encore une fois, ca ne change pratiquement rien

Lien vers le commentaire
Partager sur d’autres sites

En Asie? Ah, tu dois plus être très loin d'aller t'coucher alors :D

Bref, merci messieurs pour ces infos... Donc, si je comprends bien, sois je pers un bras et un rein en achetant des certificats officiels (car gratuit ne prennent pas en compte les sous-domaines), sois je galère à déconstruire tout ce que j'ai construit en termes de configuration (rah ça non!).

Bref, je vais donc laisser tomber...

En fait ça m'intéressait pour:

1. certains postes sur lesquels je travaille (mac sous une obscure version d'ios), n'accepte pas la connexion https à cause d'un problème de certificat. Mais bon, à la limite, pour ces cas là, je peux rester en http.

2. pour accéder au NAS via webdav en https sous Windows 7.

Mais bon, je broutignole là... <_<

Lien vers le commentaire
Partager sur d’autres sites

tu pourras toujours acceder a ton nas en webdav avec ou sans certificat.

Personnellement j ai un certificat gratuit qui permet d acceder a webstation sans message d erreur et au reste en crypte avec juste un pop up d avertissement

Well, vu que je n'arrive pas à accéder en https (http OK) en webdav à mon NAS, je pensais qu'il fallait œuvrer du côté de la certification sous Windows 7 (en importer un ou que sais-je).

Mais je ne me suis pas encore collé sur le problème. J'ouvrirai un topic dédié si je galère ;)

Lien vers le commentaire
Partager sur d’autres sites

Allez hop, je relève ;-)

Pas grand chose de neuf si ce n'est que j'ai mis en place VPN Serveur pour mes accès distants. A priori, ça roule...

Le truc c'est que j'ai dû ouvrir le port 1723 sur mon routeur. Y a pas moyen de faire passer ça via HAProxy? Je vois pas trop comment...

En effet, j'utilise souvent mon ordi portable sur un réseau où tout est bloqué (même le port 21 c'est dire).

J'ai cru comprendre que c'était possible ^_^

EDIT

J'en profite pour poser une petite question supplémentaire. En termes de performances (principalement via mobile), c'est mieux de se connecter via VPN? J'apprends seulement à me servir de l'outil...

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

tu dois pouvoir ouvrir un autre port sur le routeur que tu forwardes ensuite vers le 1723

Pour haproxy il faut regarder s il s agit d http ou non (webdav etantt du http)

concernant le vpn je ne sais pas car je ne l ai jamais utilise mais je pense que cela a plutot tendance a ralentir les connections

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.