簡體   English   中英

具有2個NodeJS應用程序的NGINX服務器

[英]NGINX server with 2 NodeJS Apps

我將簡短地介紹一下..

我在NGINX配置上存在嚴重問題(在Google雲上),以使2個nodejs應用程序在具有不同端口的同一域上工作

假設app1在端口3002上運行,app2在端口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頁

我知道您中的某些人會說這個問號已經被問過了,相信我我已經在stackoverflow上嘗試了所有可能的解決方案。

注意:app1的位置必須是主域,因此(/)沒有路徑的主域URL

我相信您的代碼未使用相對路徑,這就是為什么您遇到此錯誤,請添加以下行:

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

並且不需要root即可通過代理,因此您的新代碼應如下所示:

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;
}

第一個location塊捕獲對您域中所有請求的請求,而第二個位置塊從未使用。 將第二個塊放在第一個塊之前,它應該可以工作。

暫無
暫無

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

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