如何适当地反向代理nodejs子路由?

时间:2018-02-21 00:57:09

标签: node.js express nginx reverse-proxy

我也是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}`
        }); 
    });
});

所以这是基本代码。 '/'包含带按钮的索引页面。当您点击按钮时,它会转到'/ upload'。

无需反向代理即可运行。 我的反向代理配置如下。

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应用程序,但它转到mydomain.com/upload,它不存在。

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

1 个答案:

答案 0 :(得分:0)

我认为问题在于html。

您当前的HTML可能有类似

的内容
np.allclose(blocks[0, 0], img[:8, :8, :])
np.allclose(blocks[3, 2], img[3*8:3*8+8, 2*8:2*8+8, :])

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

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

<a href="./upload">upload</a> 开头的链接将相对于域,而以/开头的链接将相对于当前目录(./)。