@harmoon

NGINX проксирование всех страниц кроме главной?

Настроил Nginx на проксирование другого сайта.
Хочу, чтобы при заходе на любую страницу отображался проксируемый сайт, но кроме ГЛАВНОЙ страницы, т.е. когда человек заходит на главную отображался индексный файл из папки сайта.
Что надо в location прописать? Пробовал location = / {...} не работает.
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
@dodo512
nginx.org/ru/docs/http/ngx_http_index_module.html#index
Необходимо иметь в виду, что при использовании индексного файла делается внутреннее перенаправление и запрос может быть обработан уже в другом location’е.

Так что вместо index index.html; нужен try_files.
location = / {
    try_files /index.html =404;
}

location / {
    proxy_pass ...;
}


Или rewrite c флагом break.
location = / {
    rewrite ^ /index.html break;
}

location / {
    proxy_pass ...;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Вам нужно два локейшена, = / и просто /. Первый будет обрабатывать главную страницу, второй - всё остальное.
Ответ написан
Ваш ответ на вопрос

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

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