nginx proxy_pass с определенного пути на другой определенный путь выдает ошибку

Я читал и перечитывал документы nginx proxy_pass. Я думал, что понял это, пока не потратил последний час на получение неописуемой ошибки, которая не имеет смысла. Другие люди с такой же проблемой, кажется, не связаны с этим. Вчера был мой первый день с 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, так что же я сделал не так?


person Altimus Prime    schedule 18.01.2018    source источник


Ответы (1)


Когда вы используете тильду (~) в своем блоке местоположения, местоположение интерпретируется как соответствие регулярному выражению. Удалите это, и он должен работать без ошибок.

См. документацию здесь: https://nginx.org/en/docs/http/ngx_http_core_module.html#location

person Community    schedule 18.01.2018
comment
Спасибо. Строка местоположения была 30, а ошибка указывала на строку 31, поэтому я смотрел только на строку proxy_pass. - person Altimus Prime; 18.01.2018