带有 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;
}
我会简短地介绍一下..
我在使用 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;
}