Nginx 反向代理只能找到 3 个站点中的一个

Nginx 反向代理只能找到 3 个站点中的一个

更新 一次只能加载一个网站的行为似乎与客户端浏览器有关 - 如果我在一个浏览器窗口中打开所有 3 个网站(每个一个选项卡),则会出现下面描述的行为。如果我使用 3 个独立的浏览器(我使用了 Edge、Opera 和 Chrome),则所有 3 个网站都会按预期加载。 /更新

我有一个 Nginx 反向代理设置,可根据 URL 将外部流量传递到 3 个内部服务器之一(运行 IIS 10 的 Windows Server 2019)(这用于测试环境)。nginx 服务器和 Web 服务器都在同一个 vlan 中。

一切一直按预期运行,直到今天早上,在重新启动 Web 服务器后,nginx 现在只能一次加载 3 个站点中的一个。

如果我尝试打开所有 3 个网站,第一个网站会正常加载,其他 2 个网站会立即出现 404 错误。如果我等待几分钟并刷新其中一个 404,它会加载,但第一个正常加载的网站现在会变成 404,如果加载第三个网站,也会发生同样的情况。

Nginx 配置尚未更改,并且在今天早上重启之前同时加载所有 3 个站点。

我已经使用 nginx -t 测试了 nginx conf,结果正常。我已经使用 sudo systemctl reload nginx 重新加载了 nginx conf - 行为没有变化。我已经重新启动了 nginx 服务器 - 行为没有变化。

直接浏览网络服务器,所有 3 个站点均正常运行。

我可以通过 nginx 的 443 端口 telnet 到所有 3 个 Web 服务器,反之亦然。

对于行为发生改变的原因,有什么建议吗?

nginx 配置如下(我已经替换了实际的 URL,但是配置没有改变):

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 1024;
        # multi_accept on;
}
#added by Ian to allow streaming
stream {
# To add additional websites and servers:
# Add the hostname and backend label to the map, then add the upstream blocks, as in the commented example below.
# ***Once you have updated the config you MUST reload nginx with the following command: sudo systemctl reload nginx
    map $ssl_preread_server_name $name {
   url.1.com                             GunServer;
   url.2.com                             CatServer;
   url.3.com                             BlueServer;
  # <hostname of website goes here>     <text label for the backend server goes here>;
  # example: mywebsite.com       myserver;
}

# Then create a new upstream block using the label set above as shown below
# upstream myserver {
        # server <IP:port>;
#}

upstream GunServer {
        server 10.25.2.12:443;
}

upstream CatServer {
        server 10.25.2.13:443;
}

upstream BlueServer {
        server 10.25.2.11:443;
}

server {
    listen      443;
    proxy_pass  $name;
    ssl_preread on;
}
}

# all settings below this line were from nginx example conf

相关内容