【问题标题】:How to appropriately reverse-proxy nodejs subroutes?如何适当地反向代理 nodejs 子路由?
【发布时间】:2018-07-31 11:39:40
【问题描述】:

我也是 nodejs 和 nginx 的新手。所以我想做的是 nginx 中的反向代理节点。我可以这样做,但我来自 nodejs 的后续路由没有得到反向代理。

app.get('/', (req, res) => {
    res.render('index');
});

app.post('/upload', (req, res) => {
    upload(req, res, (err) => {
        console.log(req.file);
        res.render('index' , {
            msg: 'File Uploaded!',
            file : `uploads/${req.file.filename}`
        }); 
    });
});

所以这是基本代码。 '/' 具有带按钮的索引页。当您单击按钮时,它会转到“/上传”。

它可以在没有反向代理的情况下工作。 我的反向代理配置如下。

location /nodeAdmin/ {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_redirect off;
    proxy_buffering off;
    proxy_pass http://127.0.0.1:8080/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_cache_bypass $http_upgrade;
}

所以现在当我访问 mydomain.com/nodeAdmin 时,我看到了“索引”。但是当我点击上传按钮时,我需要转到 nodejs 应用程序的 /upload ,但它转到了不存在的 mydomain.com/upload 。

如果有人能指引我正确的方向,那就太好了。

【问题讨论】:

    标签: node.js express nginx reverse-proxy


    【解决方案1】:

    我认为问题在于 html。

    你当前的 html 可能有类似的东西

    <a href="/upload">upload</a>
    

    使所有链接“相对”应该可以解决您的问题

    <a href="./upload">upload</a>
    

    / 开头的链接将相对于域,而以./ 开头的链接将相对于当前目录 (nodeAdmin)。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2021-12-18
      • 2021-05-03
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 2023-03-13
      • 2019-11-26
      • 1970-01-01
      相关资源
      最近更新 更多