Назад | Перейти на главную страницу

преобразование nginx с http на https

Я размещаю веб-сайт на сервере AWS Lighsail. это один сервер, и я запускаю на нем 4 контейнера докеров. 1-nginx, 2-node js, 3-весенний бот, 4 - mysql.

На данный момент мой сайт отлично загружается с этим:

    server {
    listen       80;
    server_name  *.example.com;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    client_max_body_size 100M;
    location / {
        proxy_pass http://cahub-client:4000;
    }

    location /api {
        rewrite /api/(.*) /$1  break;
        proxy_pass http://microservice:8080;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

Я купил ssl-сертификат у goddady и теперь устанавливаю его на свой сервер.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
    }

server {
    listen 443 ssl;
    server_name  *.domain.com;
    
    ssl_certificate /etc/nginx/certs/cae51a61335308544.pem;
    ssl_certificate_key /etc/nginx/certs/www.eaxmple.com.key;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    client_max_body_size 200M;
    location / {
        proxy_pass http://cahub-client:4000;
    }

    location /api {
        rewrite /api/(.*) /$1  break;
        proxy_pass http://microservice:8080;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

Так что то, что здесь происходит, есть сейчас. что когда я набираю свой домен в URL-адресе, он перенаправляется на https, но запускается только угловой блок местоположения клиента, который является моим интерфейсом. но всякий раз, когда делается вызов из внешнего интерфейса в серверный. он также должен перейти в мой блок обратного прокси / api .. это не reolvong, вместо этого обнаружена ошибка смешанного контекста. когда я вижу на вкладке сети. Мой вызов через интерфейс выполняется как https://example.com но мой внутренний вызов идет как раньше http://example.com/api/.

Вам нужно исправить ваше веб-приложение, чтобы оно выполняло внутренние вызовы https://example.com/api вместо того http://example.com/api.