Nginx try_files 和命名位置未按预期工作

Nginx try_files 和命名位置未按预期工作

以前(大约 5 个月前)一切运行良好,现在,不再提供@app index.html。

Nginx 版本 1.6.2 和 1.8 上存在同样的问题

这是我的 /etc/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    server {
        listen       80;
        server_name  localhost;
        root   /opt/app/server/html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /var/www/html;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}

这是我的 /etc/nginx/conf.d/user_example.conf

server {
    listen 80;
    server_name user.example.com;
    root /home/user/webapps/;

    location / {
        try_files $uri $uri/ @app; (removed index.html;)
    }

    location @app {
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_pass http://127.0.0.1:9000;
    }
}

有人可以解释一下为什么跳过@app 吗?

嗯,这可能是另一个问题,但是...如果我删除/home/user/webapps/index.html并转到,user.example.com我会得到403 Forbidden。我想从@app“执行”proxy_pass,我需要更改什么?

更改了配置 - 但仍然想知道如何使用该命名位置。

server {
    listen 80;
    server_name user.example.com;
    root /home/user/webapps/;

    location / {
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_pass http://127.0.0.1:9000;
    }
}

问题不在于指定的位置,@app$uri/在于目录的权限错误/home/user/webapps。问题解决了。

相关内容