J'ai un frontend HTTP HAProxy dans ma configuration HAProxy comme ceci:
frontend myaddress.net :10098
bind :80,:8080
mode http
log global
option http-server-close
timeout client 14400000
timeout connect 60000
timeout tunnel 14400000
timeout http-request 14400000
capture request header User-Agent len 64
capture request header Accept-language len 64
capture request header x-forward len 15
capture request header Host len 64
capture request header X-Orig-Base len 64
capture request header X-Orig-Host len 64
capture request header X-Orig-Proto len 64
reqadd X-Original-Host:\ myaddress.net
acl is-ssl hdr(X-Orig-Proto) https
acl is-http hdr(X-Orig-Proto) http
redirect code 301 prefix https://myaddress.net if is-http
default_backend BACKEND_myaddress.net:catchall
Il pointe vers un backend défini comme ceci:
backend BACKEND_myaddress.net:catchall
timeout server 4h
balance leastconn
server myserver myserver:8080 check inter 5s rise 3 fall 1
Je l'ai fait fonctionner pour écouter sur le port 80, puis transférer vers 8080 sur le serveur backend, mais maintenant j'essaye de le faire également écouter sur le port 8080 sur le frontend (ne me demandez pas pourquoi, c'est une exigence boiteuse ).
Comme vous pouvez le voir, j'ai une ligne qui dit bind :80,:8080
. Je pensais que cela ferait que le frontend écoute également sur le port 8080, mais il ne semble pas écouter sur le port 8080.
Y a-t-il quelque chose qui me manque dans cette configuration? Comment puis-je faire écouter un frontend sur les ports 8080 et 80, qui sont ensuite transmis au serveur principal sur le port 8080?
Essayez ceci dans votre section frontend:
bind :80
bind :8080
bind 0.0.0.0:80
bind 0.0.0.0:8080
Travaille pour moi !