当我尝试从我的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请求(貌似)不会被代理传递?
答案 0 :(得分:1)
看起来你的nodejs应用程序在POST后重定向到/home/
,但是没有意识到它已被代理并被/appname/
调用,你应该让你的应用程序知道命名空间。并使其正确地重定向到/appname/home/
。