#nginx
Вопрос:
Я хочу переписать URL-адрес /private/ping
в другое место /ping
, как только я выполню некоторые проверки basic_auth.
Когда я звоню http://localhost:8080/ping
, со мной все в порядке. Когда я звоню http://localhost:8080/private/ping
, у меня все в порядке только с #3
настройкой. Остальные 2 конфигурации возвращают 404.
Я знаю, что NGINX успешно переписывается /private/ping
/ping
, потому #3
что конфигурация возвращается OK
, но это создает дополнительный ненужный HTTP-запрос.
Почему NGINX не обрабатывает свои собственные перезаписи, сверяя их с существующими местоположениями, или как я могу это сделать?
server {
listen 8080;
location = /ping {
return 200 'OK';
}
location /private/ {
# basic_auth stuff here
#rewrite ^/private/(.*) /$1 break; #1 No
rewrite ^/private/(.*) /ping break; #2 No
#proxy_pass http://localhost:8080/; #3 Yes
}
Комментарии:
1. Попробуйте использовать
last
вместоbreak
2. Вот и все! Спасибо! Пожалуйста, опубликуйте ответ.
Ответ №1:
Используйте rewrite ... last
для перезапуска поиска другого location
на основе перезаписанного URI.