2017-05-30 69 views
0

我將簡短的介紹沒有..2應用程序的NodeJS NGINX服務器

我在與NGINX配置(對谷歌雲),使2周應用程序的NodeJS對不同端口的同一領域工作的一個嚴重問題

假設APP1正在端口3002,APP 2工作在端口3003

APP1

location/{ 
     root /home/bitnami/project_name; 
     proxy_pass http://127.0.0.1:3002; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_redirect off; 
    } 

APP2

location /app2 { 
     root /home/bitnami/project_name; 
     proxy_pass http://127.0.0.1:3003; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_redirect off; 
    } 

,當我上網www.example.com/app2,我得到404頁

我知道一些的U會說,這個問答已經問過,相信我,我已經試穿計算器所有可能的解決方案..非曾與我一起工作

注:APP1位置已經成爲主要的域,以便(/)主域名URL,而不路徑

回答

1

我相信你的代碼不使用相對路徑,這就是爲什麼您收到此錯誤,加入這一行:

rewrite ^/app2(.*) /$1 break; 

,並沒有對代理通所需的根,你的新代碼將是這樣的:

location /app2 { 
    #root /home/bitnami/project_name; 
    proxy_pass http://127.0.0.1:3003; 
    #proxy_http_version 1.1; 
    #proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $host; 
    #proxy_set_header X-NginX-Proxy true; 
    #proxy_redirect off; 
    rewrite ^/app2(.*) /$1 break; 
} 
+0

肯定你是對的..問題解決了:D – developerbh

0

第一location塊捕獲reque sts爲您的域名的所有請求,留下第二個塊從未使用。把第二塊放在第一塊之前,它應該工作。

+0

所以你建議我扭轉順序..就是這樣嗎? – developerbh

+0

是的!請讓我們知道它是否工作:) –

+0

同樣的事情..我得到一個404頁 – developerbh