从特定路径到另一个特定路径的nginx proxy_pass会引发错误

时间:2018-01-18 00:51:49

标签: nginx nginx-reverse-proxy

我阅读并重新阅读了nginx proxy_pass docs。我以为我理解它,直到我花了最后一小时得到一个没有意义的不起眼的错误。其他有同样问题的人似乎与此无关。昨天是我与nginx的第一天。我正在运行nginx v1.12.2。

当有人请求https://example1.com/just-right/search时,我想将该请求代理到https://example2.com/abc.php

location ~ /just-right/search {
    proxy_pass   https://example2.com/abc.php;
}

我没有代理proxy_pass中定义的路径,而是收到错误:

"proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in line .......

我没有使用正则表达式。什么是'命名的位置'意思?它不在if语句或" limit_except"阻止,那我做错了什么?

1 个答案:

答案 0 :(得分:2)

在位置块中使用波浪号(〜)时,位置将被解释为正则表达式匹配。删除它,它应该处理没有错误。

请参阅此处的文档:https://nginx.org/en/docs/http/ngx_http_core_module.html#location