nginx中的嵌套位置
Posted
技术标签:
【中文标题】nginx中的嵌套位置【英文标题】:Nested locations in nginx 【发布时间】:2016-04-22 17:51:45 【问题描述】:您好,我正在尝试执行以下操作!
我基本上是在尝试通过这两个 URL 中的任何一个将以下 URL 传递给 proxy_pass 指令:
http://example.com/admin/1 或 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
【问题讨论】:
【参考方案1】:您应该在内部位置块中使用/admin/1/
,因为内部 URL 与外部 URL 无关。您可以根据包含的错误消息中的以下 sn-p 看到这是问题...
location "1/" is outside location "/admin/"
【讨论】:
使用现代文本编辑器并使用多个光标同时更改所有行 我有点困惑...如果内部 URL 与外部 URL 不相关,那么嵌套位置的目的是什么...? 内部location
块是否继承外部块的其他属性,例如proxy_read_timeout
或 proxy_pass
?以上是关于nginx中的嵌套位置的主要内容,如果未能解决你的问题,请参考以下文章
Bookshelf.js / Knex.js 嵌套在单个查询中的位置