J'obtiens toujours une réponse Bad Request (400) de Haproxy avec cette configuration. Voici le frontend :
frontend http-in
bind *:80
mode http
option httplog
log debug
acl cm-acl hdr(host) cm-lab
acl hue-acl hdr(host) hue-lab
use_backend cm if cm-acl
use_backend hue if hue-acl
et ici le backend :
backend cm
#server cm lrc1i720.server.lan:7180
server 01 toto1i720.server.lan:7180 check
server 02 toto2i721.server.lan:7180 check backup
backend hue
server 01 toto1i724.server.lan:8888 check
# server 02 toto2i725.server.lan:8888 check backup
Cela fonctionne pour le backend "cm", mais pas pour le backend "hue". Je suppose que cela vient du serveur hue qui fait une redirection 302. J'ai donc essayé de définir directement la cible de la redirection url :
server 01 toto1i724.server.lan:8888/accounts/login/ check
Mais je reçois toujours l'erreur 400 avec Bad request. Que puis-je faire pour permettre à Haproxy de suivre la redirection ? Ou existe-t-il un autre moyen de procéder ?
EDIT :
J'espère que c'est ce que vous attendez. Voici donc le journal (il est réglé sur debug, mais il n'est absolument pas assez verbeux) :
Nov 24 11:17:02 localhost haproxy[71630]: IP.IP.IP.IP:60497 [24/Nov/2017:11:17:02.604] http-in hue/01 2/0/0/4/6 400 652 - - ---- 3/1/0/1/0 0/0 "GET / HTTP/1.1"
Nov 24 11:17:02 localhost haproxy[71630]: IP.IP.IP.IP:60497 [24/Nov/2017:11:17:02.604] http-in hue/01 2/0/0/4/6 400 652 - - ---- 3/1/0/1/0 0/0 "GET / HTTP/1.1"
voici l'en-tête de la requête HTTP et la réponse :
# curl -k -v https://hue-int/
* About to connect() to hue-int port 443 (#0)
* Trying X.X.X.X...
* Connected to hue-int (X.X.X.X) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=vip-host1-host2.server.lan,E=toto@titi.fr,OU=TEST,O=company,L=VILLE,ST=VILLE,C=FR
* start date: mai 19 07:15:22 2017 GMT
* expire date: mai 19 07:15:22 2018 GMT
* common name: vip-host1-host2.server.lan
* issuer: CN=vip-host1-host2.server.lan,E=toto@titi.fr,OU=TEST,O=company,L=VILLE,ST=VILLE,C=FR
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: hue-int
> Accept: */*
>
< HTTP/1.1 400 BAD REQUEST
< Content-Length: 26
< x-xss-protection: 1; mode=block
< x-content-type-options: nosniff
< Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval' *.google-analytics.com *.doubleclick.net *.mathjax.org data:;img-src 'self' *.google-analytics.com *.doubleclick.net http://*.tile.osm.org *.tile.osm.org *.gstatic.com data:;style-src 'self' 'unsafe-inline';connect-src 'self';child-src 'self' data:;object-src 'none'
< strict-transport-security: max-age=31536000; includeSubDomains
< Vary: Accept-Language
< Content-Language: en-us
< Date: Fri, 24 Nov 2017 10:44:48 GMT
< X-Frame-Options: SAMEORIGIN
< Content-Type: text/html
< audited: False
< Server: apache
<
* Connection #0 to host hue-int left intact
Regards,
A.
1 votes
HAProxy ne suit pas les redirections. Il renvoie alors au navigateur. Ce que vous essayez d'accomplir n'est vraiment pas clair, mais veuillez nous montrer l'entrée du journal pour la requête qui a échoué ainsi que les en-têtes de requête et de réponse.
0 votes
Michael : Merci, j'ai mis à jour la question, j'espère que cela correspond à ce que vous attendiez. Salutations, A.
1 votes
HAProxy semble fonctionner correctement. Cette erreur provient du serveur back-end 01 dans le back-end hue ; comme vous pouvez le voir dans l'en-tête de réponse,
Server: apache
. Vous devez examiner les journaux de ce système pour déterminer ce qu'il n'aime pas dans la requête entrante.