
Tengo un servidor nginx que sirve a diferentes servidores web en los puertos 80 y 443, que funciona bien si lo presiono directamente.
abc.com, zyx.com
client ---->abc.com,zyx.com (on nginx)
Ahora estoy intentando hacer lo mismo a través de haproxy pero no puedo hacerlo.
client -----> abc.com, zyx.com (on haproxy) ----->nginx (abc.com, zyx.com)
Haproxy y nginx están en el mismo vpc, por lo que quiero modificarlo aún más para llamar a la IP interna. ¿Se puede lograr lo mismo?
La siguiente es la configuración para haproxy.
global
daemon
maxconn 100000
gid 99
uid 99
log /dev/log local0
log /dev/log local1 notice
nbproc 4
pidfile /etc/haproxy/pid
defaults
log global
mode http
maxconn 100000
option dontlognull
option forwardfor except 127.0.0.1
option http-server-close
option httpclose
option httplog
option http_proxy
option redispatch
option logasap
option log-separate-errors
retries 3
timeout http-request 86400
timeout queue 86400
timeout connect 86400
timeout client 86400
timeout server 86400
timeout http-keep-alive 3000
timeout check 2000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend https-in
bind *:443 ssl crt /etc/haproxy/ssl/*.pem
reqadd X-Forwarded-Proto:\ https
acl abc hdr(host) -i abc.com
use_backend wow if abc
frontend http
bind *:80
compression algo gzip
compression type application/json text/html text/plain text/css
reqadd X-Forwarded-Proto:\ http
stats enable
stats hide-version
stats uri /stats
stats realm Haproxy\ Statistics
stats auth haproxy:haproxy
stats refresh 10s
acl zyx hdr(host) -i zyx.com
use_backend amazing if zyx
wow
server nginx someip:443 check
amazing
server nginx someip:80 check
A continuación se muestra la configuración del servidor nginx.
abc.com
server {
listen 443;
server_name abc.com;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/nginx/ssl/*.crt;
ssl_certificate_key /etc/nginx/ssl/*.key;
location / {
root /location_of_webserver;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 360;
proxy_send_timeout 360;
proxy_read_timeout 360;
}
}
zyx.com
server {
listen 80;
server_name zyx.com;
location / {
alias /location_of_webserver/;
autoindex on;
expires 24h;
}
}
Respuesta1
Intente cambiar lo siguiente:
wow
server nginx someip:443 check
amazing
server nginx someip:80 check
A:
backend wow
server nginx ipaddress:443 check
backend amazing
server nginx ipaddress:80 check
Si puede actualizar sus preguntas con errores del archivo de registro, sería más fácil identificar la causa.