如何解决无法将 nginx 代理传递到不同端点上的不同端口
当在不同的端点上调用时,我试图在不同的端口上进行反向代理...但出于某种原因,似乎只有根端点“/”有效。而另一个端点,即 location /mah/ 似乎不起作用。下面是default.conf
server {
listen 443 ssl;
server_name expmple.com;
location / {
proxy_pass http://localhost:8001/;
}
location /mah/ {
proxy_pass http://localhost:8000/;
}
#followed my ssl keys
}
在各个端口上侦听的节点服务器使用 express 提供静态网页,即
const express = require("express");
const path = require("path");
const app = express();
const PORT =8000;
app.use(express.static(path.join(__dirname,"frontend","build")));
app.listen(PORT,() => {
console.log(`Server listening on port ${PORT}`);
});
没有错误,但浏览器中显示空白屏幕。 [注意:当我尝试切换端口时: / 上的 8000 和 /mah/ 上的 8001。一切都在 / 上运行良好。但是 /mah/ 不起作用。] 我尝试了多种方法,例如重写、添加 proxy_set_headers,但似乎没有任何效果。任何帮助表示赞赏。
解决方法
Nginx 代理应该是一个在你的快速路由路径中具有相同路径的地图。
尝试将在端口 8000 上运行的 Express 端点指向 /mah
。在您的示例中,它应该是这样的。
app.use('/mah',express.static(path.join(__dirname,"frontend","build")));
为什么它适用于 location /
?因为 express 应用运行在 8001 端口
app.use(express.static(path.join(__dirname,"build")));
默认指向 /
路线。这与
app.use('/',"build")));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。