Nginx 啟用多個網站會破壞 nginx

Nginx 啟用多個網站會破壞 nginx

我的 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 後一切開始運作。

謝謝!

相關內容