403错误;不会代理:NginX和Node.js

前端之家收集整理的这篇文章主要介绍了403错误;不会代理:NginX和Node.js前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我目前有一个设置,其中所有静态文件Nginx提供,如果没有找到静态文件,则将其移动到node.js服务器上.不幸的是,我收到了根请求的403错误.其他一切都很好.

@H_502_6@server {
    listen *:80;
    error_page 404 = /404.html;
    root /web/sites/this.site.tld/static;
    index home;

    location / {
        try_files $uri $uri/ @proxy;
    }

    location @proxy {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_X_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_pass http://thisSiteApp;
        proxy_redirect off;
    }
}

upstream thisSiteApp{
    server 127.0.0.1:3000;
}

我很确定问题在于索引指令.将“index.html”文件放在static中并将指令更改为“index index.html”可以正常工作.但我真正想做的是让它在节点服务器上查找索引位置,同时仍然在不查看节点的情况下提供静态文件.

NB.如果我把代理设置放在/ location下,那么节点服务器服务于root就好了(没有静态文件,但它可以很好地服务).

最佳答案
你的try_files指令有一个正斜杠,所以当进入example.org/的裸根时,Nginx将尝试为目录提供服务.

代替:

@H_502_6@location / {
    try_files $uri $uri/ @proxy;
}

使用:

@H_502_6@location / {
    try_files $uri @proxy;
}

猜你在找的Nginx相关文章