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. Надеюсь это поможет.

Другие вопросы по тегам