我尝试通过一个地址公开 Web 服务器的一部分,通过另一个地址公开另一部分。我觉得我的用例应该很简单,但 nginx 给我带来了很多麻烦。
我现在有的是:
服务器一:
server {
listen 443 ssl;
server_name mydomain.com;
location /dev/subfolder {
proxy_pass http://dev.mydomain.local/subfolder;
proxy_redirect http:// https://;
}
}
服务器二:
server {
listen 80;
server_name dev.mydomain.com;
location /main {
#some config
}
location /subfolder {
return 404;
}
}
server {
listen 80;
server_name dev.mydomain.local;
location /subfolder {
#some config
}
}
问题是,如果我proxy_set_header Host $host
向服务器一添加指令,服务器二上的第一个服务器块将接收请求并返回 404。如果我不包含该标头,我的浏览器将尝试导航dev.mydomain.local
并失败,因为该域仅在内部可用。我该如何解决这个问题?