LINUX.ORG.RU
ФорумAdmin

Nginx не проксирует по https

 ,


0

1

Всем привет/ подскажите плиз

Нужно чтобы nginx проксировал по https

но отдает ошибку и отдает страницу по http

was loaded over https but requested an insecure xmlhttprequest endpoint

location /test {

        proxy_pass http://dev-server:60100/pro;


        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;

        proxy_set_header   remote_addr $remote_addr;
        proxy_cache_bypass $http_upgrade;
        #proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout   300;
        proxy_send_timeout      300;
        proxy_read_timeout      300;
       

    }

Ответ на: комментарий от carter

Правильно я изначально понял, что ошибка появляется в браузере?

Если так, то смотрите куда ваше приложение обращается по http, может быть это сторонний сервер.

vvn_black ★★★★★ ()

Можно попробовать открыть в браузере web developer tools, вкладку network и найти тот запрос, который ломается. Пусть это будет запрос к http://server

А потом сделать в конфигурации nginx вот так:

sub_filter_once off;
sub_filter http://server https://server;
sub_filter_types text/html application/javascript;

#gunzip on;  # если dev-server умеет Transfer-Encoding: gzip, deflate

Но правильный способ решения этой проблемы — донести до конечного приложения знание, что его запрашивают через https, чтобы оно генерировало правильные пути.

Где-то это делается в настройках, где-то с помощью proxy_set_header X-Forwarded-Proto https.

kmeaw ★★ ()