web-dev-qa-db-fra.com

HAProxy - Configurez l'interface HTTP pour écouter sur plusieurs ports

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?

12
dsw88

Essayez ceci dans votre section frontend:

bind :80
bind :8080
27
Gooner
bind 0.0.0.0:80
bind 0.0.0.0:8080

Travaille pour moi !

3
Karthik