当位置路径不是/时,Node.js应用程序不会加载

时间:2018-02-01 05:57:44

标签: node.js nginx

出于某种原因,我在127.0.0.1:8081上运行的Node.js应用需要/

如果我从这开始, //projectb可以加载页面

server {
        listen 80;

        location / {
                proxy_pass http://127.0.0.1:8081;

                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }

        location /projectb {
                proxy_pass http://127.0.0.1:8081/;

                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
}

当我将其更改为此时,/projectb无法再完全加载页面。当我查看网络选项卡时,一些(但不是全部)请求失败,例如某些图像,.js,一些错误的端点。

server {
        listen 80;

        location /somethingelse {
                proxy_pass http://127.0.0.1:8080/;

                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }

        location /projectb {  # I'd expect this to still work.
                proxy_pass http://127.0.0.1:8081/;

                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
}

总结一下,当我直接点击端口时123.456.78.910:8081,当我有//projectb代理到http://127.0.0.1:8081/,当我代理{ {1}}本身,但不是我自己代理/时。

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:0)

如果location /projectb在没有location /的情况下无效,则表示location /projectb未正确配置。您是否尝试删除location /projectb以查看它是否仅适用于location /

你的nginx应该代理请求的端点是什么?是http://127.0.0.1:8081/还是http://127.0.0.1:8081/projectb?我感觉它是http://127.0.0.1:8081/projectb

请尝试从第二个代码段中的proxy_pass http://127.0.0.1:8081/;行删除尾部斜杠。