nginx反向代理有多个不同的后端

时间:2020-02-26 14:40:19

标签: nginx reverse-proxy nginx-reverse-proxy

我有一个Nginx反向代理,它从外部服务于多个外部域。 Nginx会将请求通过端口80传递给后端,如下所示:

http://server1.domain.com ---> http://backend1.domain.com

http://server2.domain.com ---> http://backend2.domain.com

http://server3.domain.com ---> http://backend3.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.comhttp://server3.domain.com等,即使我只配置了一个??????,它仍会将我转发到正确的后端服务器。在我看来,这非常奇怪。

另一方面,我可以在端口443或其他任何端口上代理流ssl_preload模块。因此,当我从map指令中删除其中一台服务器时,它不会路由到后端。这种情况就可以了。我主要关心的是80端口的行为如此奇怪,为什么?

0 个答案:

没有答案