moorzilla
@moorzilla

Локация с proxy_pass и location ~* в nginx?

location /loc { proxy_pass 127.0.0.1:8080 } не работает с location ~* { ... } в nginx. На отдаче 404 ошибка.

Пока проверял разные способы, ловил такое сообщение в консоли

"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 /etc/nginx/sites-enabled/*

Возникло предположение, что эта ошибка из другой изменённой конфигурации, что в этой конфигурации location ~* { ... } является регуляркой, и видимо как-то относится к location /loc { proxy_pass 127.0.0.1:8080 } и к сообщению выше. При этом ошибок в консоли/логах/при старте - нет, proxy_pass не работает. Всё заканчивается тем, что nginx ищет страницу index.php в корне, не находит и отдаёт 404.

Стоит только убрать location ~* { ... } из конфигурации и всё прекрасно работает.

Собственно, вопрос состоит в том, как в Nginx сделать рабочую конфигурацию c location /loc { proxy_pass 127.0.0.1:8080 } и с location ~* { ... } , потому что в данном случае location ~* { ... } нужна.
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
moorzilla
@moorzilla Автор вопроса
кажется, что единственное верное решение в этом случае - указать auth_basic в секции server без location. Тогда работает auth_basic везде и location с proxy_pass. Но в итоге - мы всё-равно не получаем ответа на заданный вопрос, почему location с proxy_pass не работает с location ~* { ... }
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
fzfx
@fzfx
18,5 дм
я не сильно много что понял из вопроса.
такой вариант вас не устроит?
location ~* {
    proxy_pass http://127.0.0.1:8080;
}
Ответ написан
karabanov
@karabanov
Системный администратор
не работает с location ~* { ... }

Поле модификатора ~* должно быть указано регулярное выражение.

PS
location
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы