
Ich habe einen Nginx-Server, der verschiedene Webserver auf Port 80 und 443 bedient, was einwandfrei funktioniert, wenn ich direkt darauf zugreife.
abc.com, zyx.com
client ---->abc.com,zyx.com (on nginx)
Jetzt versuche ich, dasselbe über Haproxy zu tun, aber es gelingt mir nicht.
client -----> abc.com, zyx.com (on haproxy) ----->nginx (abc.com, zyx.com)
Haproxy und Nginx befinden sich auf demselben VPC, daher möchte ich es weiter modifizieren, um die interne IP aufzurufen. Kann das Gleiche erreicht werden?
Nachfolgend finden Sie die Konfiguration für 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
Nachfolgend finden Sie die Konfiguration des Nginx-Servers
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;
}
}
www.zyx.com
server {
listen 80;
server_name zyx.com;
location / {
alias /location_of_webserver/;
autoindex on;
expires 24h;
}
}
Antwort1
Versuchen Sie, Folgendes zu ändern:
wow
server nginx someip:443 check
amazing
server nginx someip:80 check
Zu:
backend wow
server nginx ipaddress:443 check
backend amazing
server nginx ipaddress:80 check
Wenn Sie Ihre Fragen mit Protokolldateifehlern aktualisieren können, wäre es einfacher, die Ursache zu ermitteln.