我正在尝试使用 nginx 设置负载均衡器。
我遇到的问题是,当我尝试使用 proxy_set_header 时,变量 $host 不起作用
当我尝试去http://proxy.domain.com给我一个 404 错误,当我检查日志时给我这个。
server: proxy.domain.com, request: "GET / HTTP/1.0", upstream: "http://1.2.3.4:80/", host: "proxy.domain.com"
如果这里没问题的话,IP 1.2.3.4 是 ss.domain.com 的真实 IP,但是为什么给我这个 http://1.2.3.4:80/而不是我的域名,因为这会给我错误 404 并且没有查找正确的虚拟主机。
我配置了以下代理设置:
upstream s3 {
server ss.domain.com weight=2;
server vv.domain.com;
}
server {
listen 80;
listen [::]:80;
server_name proxy.domain.com;
root /var/www/proxy.domain.com/html;
location / {
proxy_pass http://s3;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
}