更新 一次只能載入一個網站的行為似乎與客戶端瀏覽器相關 - 如果我在一個瀏覽器視窗中開啟所有 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