繁体   English   中英

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

[英]Node.js app doesn't load when location path is not /

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

如果我以此开始,那么//projectb都可以加载page

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/ ,以及当我/projectb代理到/ ,它都可以工作当我自己代理到/projectb

为什么会这样呢?

如果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/;删除尾部斜杠proxy_pass http://127.0.0.1:8081/; 在第二个片段中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM