簡體   English   中英

Nginx-反向代理到已經反向代理的位置還是雙重反向代理?

[英]Nginx - Reverse proxy to an already reverse proxied location or double reverse proxy?

我在centos 7上使用nginx。

我按照以下說明將同一LAN上的遠程nodejs服務器反向代理到nginx root /:

    location / {

    proxy_pass http://192.168.1.104:3000/;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

這對於為我的網站提供服務效果很好-端口80上的所有外部請求都被重寫為使用已在nginx中配置的https,例如nginx將所有傳入的HTTP請求轉發至https並進行重寫和轉發,以便nodejs內容甚至可以通過ssl進行服務盡管尚未在節點應用程序中配置ssl。

例如,可以通過https://example.com訪問我的網站

我現在想反向代理另一個nodejs應用程序,以便它出現在以https://example.com為前綴的位置,例如: https ://example.com/node2/

我已經嘗試將以下配置用於第二個節點服務器...

    location /node2/ {

    proxy_pass http://192.168.1.100:3000/;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
    }

當我加載https://example.com/node2/ url時,將顯示第二個節點服務器的根頁面的html,但沒有加載css,js或圖像,因此該頁面看起來或工作方式都不像它應該並且我在瀏覽器控制台中看到以下內容...

混合內容:“ https://example.com/node2/ ”上的頁面已通過HTTPS加載,但請求了不安全的圖片“ http://192.168.1.100:3000/assets/graphics/logo.png ”。 此內容也應通過HTTPS提供。

無法加載資源:net :: ERR_CONNECTION_CLOSED https://192.168.1.100:3000/assets/css/styles.min.css

對於css和js資產...因此似乎沒有對資產進行重定向,並且html頁面上的任何鏈接在懸停或單擊時都沒有顯示/ node2 /后綴,因為該頁面嘗試從中加載資源https://example.com而不是https://example.com/node2/

是否可以根據反向代理兩個位置實際執行我想要的操作,並且有人可以向我指出如何根據需要獲得正確工作的正確方向嗎?

已設置要加載的應用程序,以從服務器根目錄而不是服務器根目錄+ / node2 /加載資產。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM