nginx не перенаправляет ответ перенаправления 302 на https
Привет, у меня есть настройка nginx для перенаправления всех запросов порта 80 на использование https:
server {
listen 80;
...
return 301 https://$host$request_uri;
}
Затем у меня есть маршрут всех https-запросов к моему серверу приложений
server {
listen 443 ssl;
...
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
...
}
}
Все работает, как ожидалось, за исключением тех 302 ответов с
Location
заголовок (например,
Location: http://localhost/somepage
), Я бы ожидал, что они будут перенаправлены на использование https (поскольку они обращаются к страницам через порт 80), однако вместо этого я получил ошибку (net::ERR_FAILED). Как ни странно, прямой ввод этих URL-адресов в браузере (например, http://localhost/somepage) работает должным образом (т.е. перенаправляется на использование https и возврат страницы), поэтому только
Location
URL-адреса не перенаправляются nginx, пожалуйста, помогите.
1 ответ
Попробуйте добавить косую черту в конец прокси, т.е.
proxy_pass http://localhost:8080/;
В прошлом у меня были проблемы, когда местоположение добавлялось непосредственно к URL-адресу, например
https://localhostSomepage
вместо
https://localhost/Somepage
. Надеюсь это поможет.