semenenko88
@semenenko88
Системный администратор

Почему nginx reverse proxy не работает если в браузере в конце не поставить последний /?

Вот такая настройка на nginx reverse proxy:
location /UNDVXE5A/ {
         proxy_pass https://10.15.0.109/UNDVXE5A/;
         proxy_set_header Host $proxy_host;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Real-IP $remote_addr;
        }


Во внешку для nginx проброшен порт 7323 на локальный 443.

Если я в браузере обращаюсь так: https://domen:7323/UNDVXE5A/ то все работает
А так: https://domen:7323/UNDVXE5A - то перекидывает на https://domen/UNDVXE5A/

В чем может быть причина?

Может быть важно nginx reverse proxy работает на https, в качестве backend apache тоже работает по https (но сертификат самописный).
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
https://nginx.org/ru/docs/http/ngx_http_core_modul...
Если location задан префиксной строкой со слэшом в конце и запросы обрабатываются при помощи proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass или grpc_pass, происходит специальная обработка. В ответ на запрос с URI равным этой строке, но без завершающего слэша, будет возвращено постоянное перенаправление с кодом 301 на URI с добавленным в конец слэшом.


Поскольку изменение порта с 7323 на 443 вы делаете на роутере, то nginx ничего не знает про порт 7323 и делает редирект на адрес с портом указанным в его конфиге, т.е. 443. Проще все сказать nginx не делать абсолютный редирект.
absolute_redirect off;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
поскольку у вас в location указано /UNDVXE5A/, то и срабатывать этот локейшн будет только для /UNDVXE5A/.
а перекидывает https://domen:7323/UNDVXE5A на https://domen/UNDVXE5A/ потому что под вышеупомянутое правило, как я написал выше, ваш УРЛ не попадает, а где-то в конфиге есть правило или набор правил, отвечающие за перекидывание с https://domen:7323/UNDVXE5A на https://domen/UNDVXE5A/.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 100 000 до 130 000 ₽
Artezio Москва
от 130 000 до 250 000 ₽
Coms Москва
от 80 000 до 130 000 ₽
19 янв. 2021, в 17:06
123456 руб./за проект
19 янв. 2021, в 17:04
5000 руб./за проект