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 測試了 nginxconf,結果正常 我已經使用 sudo systemctl reload nginx 重新加載了 nginxconf - 行為沒有改變 我已經重新啟動了 nginx 伺服器 - 行為沒有改變

直接瀏覽網頁伺服器,所有 3 個網站均正常運作。

我可以在連接埠 443 上從 nginx 遠端登入所有 3 個 Web 伺服器,反之亦然。

關於行為可能改變的原因有什麼建議嗎?

nginx 設定如下(我已經取代了實際的 url,但conf 沒有改變):

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

相關內容