nginx 中的嵌套位置

Nested locations in nginx

您好,我正在努力让以下内容发挥作用!

我基本上是在尝试通过这两个 URL 中的任何一个将以下 URL 传递给 proxy_pass 指令:

http://example.com/admin/1 or http://example.com/admin/2/

我有以下配置:

location /admin/ {

        # Access shellinabox via proxy
        location 1/ {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://example.com;
        }

}

此时抛出一个错误:

2016/01/17 15:02:19 [emerg] 1#1: location "1/" is outside location "/admin/" in /etc/nginx/conf.d/XXX.conf:37
nginx: [emerg] location "1/" is outside location "/admin/" in /etc/nginx/conf.d/XXX.conf:37

您应该在内部位置块中使用 /admin/1/,因为内部 URL 与外部 URL 无关。根据您包含的错误消息中的以下片段,您可以看到这是问题所在...

location "1/" is outside location "/admin/"