加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 21:18:20 所属栏目:Nginx 来源:网络整理
导读:我目前有一个设置,其中所有静态文件由NginX提供,如果没有找到静态文件,则将其移动到node.js服务器上.不幸的是,我收到了根请求的403错误.其他一切都很好. server { listen *:80; error_page 404 = /404.html; root /web/sites/this.site.tld/static; index ho

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

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将尝试为目录提供服务.

代替:

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

使用:

location / {
    try_files $uri @proxy;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读