带有 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 页面

我知道你们中的一些人会说之前有人问过这个问题,相信我,我已经在 Whosebug 上尝试了所有可能的解决方案.. 没有人和我一起工作

注意:app1 位置它必须是主域所以 (/) 主域 URL 没有路径

第一个 location 块捕获对您域的所有请求的请求,而第二个块从未使用过。将第二个块放在第一个之前,它应该可以工作。

我相信您的代码没有使用相对路径,这就是您收到此错误的原因,请添加此行:

rewrite ^/app2(.*) / 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(.*) / break;
}