我阅读并重新阅读了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"阻止,那我做错了什么?
答案 0 :(得分:2)
在位置块中使用波浪号(〜)时,位置将被解释为正则表达式匹配。删除它,它应该处理没有错误。
请参阅此处的文档:https://nginx.org/en/docs/http/ngx_http_core_module.html#location