我有一个Nginx反向代理,它从外部服务于多个外部域。 Nginx会将请求通过端口80传递给后端,如下所示:
http://server1.domain.com ---> http://backend1.domain.com
现在奇怪的行为。我在启用了站点的站点中有一个conf文件。像test.conf。在这个conf文件中,只有一个后端,只有一个外部配置如下:
server {
server_name server1.domain.com;
listen server1.domain.com:80;
location ~ {
proxy_pass_header Authorization;
proxy_pass http://backend1.domain.com:80;
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_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
access_log /var/log/nginx/http_access.log;
error_log /var/log/nginx/http_error.log;
}
因此,如您所见,该配置仅配置了一个后端。但是,如果我呼叫http://server2.domain.com或http://server3.domain.com等,即使我只配置了一个??????,它仍会将我转发到正确的后端服务器。在我看来,这非常奇怪。
另一方面,我可以在端口443或其他任何端口上代理流ssl_preload模块。因此,当我从map指令中删除其中一台服务器时,它不会路由到后端。这种情况就可以了。我主要关心的是80端口的行为如此奇怪,为什么?