Con*_*tin 1 apache proxy node.js express
让我假设基本路由 工作正常,并且下面列出的每个文件都放置在网站的根文件夹中。
我的router.js结构如下:
const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
res.send({ response: "Server is up and running good." }).status(200);
});
router.get("/user", (req, res) => {
res.send({ response: "subroute" }).status(200);
});
router.post('/', (req, res) => {
res.send({ response: 'true' })
})
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
当然,在index.js(主文件)中我指示app上面use的路由器
const router = require('./router');
app.use('/', router);
Run Code Online (Sandbox Code Playgroud)
在Apache2 VirtualHost配置上,我有以下代理配置:
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
ProxyPass / https://127.0.0.1:8443
ProxyPassReverse / https://127.0.0.1:8443
Run Code Online (Sandbox Code Playgroud)
正如标题所示,问题是子路由 ( /user) 不起作用,而是抛出502 Bad Gateway错误。然而,基本路由上的POST和GET工作得很好。/
有趣的是,正如我所相信的那样,问题变成了ProxyPass指令ProxyPassReverse。
具体来说,您需要在目标主机的末尾添加一个尾部斜杠。
不良配置:
ProxyPass / https://127.0.0.1:8443
ProxyPassReverse / https://127.0.0.1:8443
Run Code Online (Sandbox Code Playgroud)
有效配置:
ProxyPass / https://127.0.0.1:8443/
ProxyPassReverse / https://127.0.0.1:8443/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
740 次 |
| 最近记录: |