Обратный прокси-сервер nginx возвращает неверный URL
Я устанавливаю программное обеспечение JIRA в контейнере Docker. JIRA слушает 127.0.0.1:8080. У меня есть мой обратный прокси на https: // имя_хоста / jira, перенаправляющий трафик с помощью этой конфигурации:
location /jira {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
}
Проблема в том, что я получаю 302 петли перенаправления. Когда я захожу на https: // имя_хоста / jira, меня снова и снова перенаправляют на https://hostname/jira/jira/secure/SetupMode!default.jspa. Это будет правильный URL, за исключением дополнительного фрагмента "/jira".
1 ответ
Это был бы правильный URL-адрес, за исключением дополнительного
/jira
фрагмент.
Вместо того, чтобы использовать location /jira
Вы можете добавить прокси-сервер в качестве субдомена в новый блок сервера, например:
server {
listen 80;
server_name jira.hostname;
location / {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
}
}
Если вы решили попробовать это, не забудьте обновить любые соответствующие записи DNS (или аналогичные), чтобы указать jira.hostname
на правильный IP (например, 127.0.0.1).