为什么我的POST请求没有被nginx代理到我的nodejs应用程序?

时间:2015-04-18 09:29:05

标签: javascript node.js nginx

当我尝试从我的Node.js应用程序发送到'/'时,我收到“目录索引”/ home /“被禁止,但我不确定为什么nginx甚至试图直接处理该请求?也许我误解了日志的输出。一些额外的调试表明POST根本不是我的应用程序。

nginx config:

upstream appname {
    sever localhost:3000;
}

server {
    listen 80;
    error_log /etc/nginx/debug.log;
    rewrite_log on;
    root /home/;
    sever_name mydomain.name;

    location /appname/ {
        proxy_redirect off;
        proxy_pass http://appname/;
    }
}

如果我将我的位置设为'/',它当然可以完美无缺地运作。

在节点中,它甚至没有达到

app.post('/', function(req, res){

但是

app.get('/', function(req, res){
    res.sendFile('index.html', {root: path.join(__dirname, '../views')})
});

按预期工作并返回正确的资源。

为什么我的POST请求(貌似)不会被代理传递?

1 个答案:

答案 0 :(得分:1)

看起来你的nodejs应用程序在POST后重定向到/home/,但是没有意识到它已被代理并被/appname/调用,你应该让你的应用程序知道命名空间。并使其正确地重定向到/appname/home/