[英]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.