我在nginx server_1上具有此配置:
upstream server_2 {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name *.mydomain.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
location / {
proxy_redirect off;
proxy_pass http://server_2;
}
}
并且此配置在nginx server_2上
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
server {
listen 8080;
server_name ~^subdomain\.mydomain\.com$;
location / { proxy_pass http://127.0.0.1:2000; }
}
例如,现在重定向不起作用
如果/ url应该重定向到/ otherurl并且请求是http://subdomain.mydomain.com/url,则返回到浏览器的重定向URL是http://server_1/otherurl而不是http://subdomain.mydomain.com/otherurl
找到了解决方案here。
只需删除proxy_redirect off
,然后将以下行添加到位置块中
proxy_set_header HOST $host;
它将成为
location / {
proxy_pass http://server_2;
proxy_set_header HOST $host;
}