我的 Nginx 伺服器發生了一個奇怪的問題。我使用 Nginx 作為內部伺服器上運行的多個服務的反向代理。
這就是我試圖實現的目標:
app1.mydomain.com --- --- server 1: 10.0.0.2
\ 10.0.0.1 /
|--- nginx reverse proxy server --- |
/ \
app2.mydomain.com --- --- server 2: 10.0.0.3
因此,我為 app1 添加了第一個,在我的網域提供者中添加了 DNS 設置,一切都運作良好。我非常興奮,所以我去了第二個,然後一切都壞了。我跑了nginx -t
,一切測試都很好。 Nginx 伺服器仍在運行,沒有錯誤,但我無法查看 app1.mydomain.com
除了 server_name 和 proxy_pass 之外,設定基本上相同
文件:/etc/nginx/sites-available/app1.mydomain.com
server {
server_name app1.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.2;
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_set_header X-Forwarded-Proto $scheme;
}
}
文件:/etc/nginx/sites-available/app2.mydomain.com
server {
server_name app2.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.3;
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_set_header X-Forwarded-Proto $scheme;
}
}
我這樣做的方法是將每個配置新增到可用網站的自己的檔案中,然後執行sudo ln -s /etc/nginx/sites-available/app1.mydomain.com /etc/nginx/sites-enabled/
這對於 app1 來說非常有效,但是在對 app2 執行此操作後,我失去了對 app1 的存取權限,並且 app2 也不會出現。
在我的路由器中,我將連接埠 80 和 443 轉送到反向代理伺服器 10.0.0.1,這些是我的路由器上的唯一規則。在我的網域供應商上,我有指向正確 IP 的正確 A 記錄。我能夠驗證應用程式 1 的一切正常,但在為應用程式 2 建立符號連結以進入啟用網站並重新啟動 nginx 後,我失去了對所有內容的存取權限。
對於發生的事情有什麼想法嗎?謝謝!
答案1
@symcbean 實際上指出了答案。我發布的配置不完整。對於 app1,我使用了顯示的確切配置(以某種方式工作),然後運行 certbot,將 TLS 配置和監聽變數新增至組態。
然後我添加了應用程式2 的配置(如圖所示),我在伺服器上沒有收到任何錯誤,但當我嘗試存取應用程式1 或應用程式2 時,開始出現連接拒絕錯誤。重新啟動nginx 後一切開始運作。
謝謝!