我有一个 nginx 服务器,它在端口 80 和 443 上为不同的 Web 服务器提供服务,如果我直接点击它,它可以正常工作。
abc.com、zyx.com
client ---->abc.com,zyx.com (on nginx)
现在我尝试通过 haproxy 执行相同操作但无法做到。
client -----> abc.com, zyx.com (on haproxy) ----->nginx (abc.com, zyx.com)
haproxy 和 nginx 在同一个 vpc 上,所以我想进一步修改它以调用内部 ip。可以实现相同的效果吗?
以下是 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
以下是 nginx 服务器的配置
美国广播公司
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;
}
}
济南市人民政府
server {
listen 80;
server_name zyx.com;
location / {
alias /location_of_webserver/;
autoindex on;
expires 24h;
}
}
答案1
尝试更改以下内容:
wow
server nginx someip:443 check
amazing
server nginx someip:80 check
到:
backend wow
server nginx ipaddress:443 check
backend amazing
server nginx ipaddress:80 check
如果您可以使用日志文件错误更新您的问题,那么找出原因会更容易。