Nginx перенаправить https-> http (обратный прокси-сервер) -> порт (Docker-контейнер) - PullRequest
0 голосов
/ 09 февраля 2019

Контекст

Простая настройка

  • Докер-контейнер, отображающий 8090 в качестве веб-сайта (узел, экспресс)
  • Nginx conf раскрывающий80 и сопоставление его с localhost 8090

выпуск

У меня нет платного SSL-сертификата, я хочу, чтобы конечные пользователи, которые пытаются достичь https, были перенаправленына http.

Я попытался перенаправить, переписать, а здесь ниже простого прослушивания .. без успеха.Браузер выдаст «ERR_SSL_PROTOCOL_ERROR».

server {
    listen 80;
    listen 443;
    ssl off;
    server_name xxxx.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://0.0.0.0:8090";
    }
 }

Вопрос

Не могли бы вы посоветовать самый чистый способ перенаправления https-> http (обратный прокси-сервер)?С уважением

Редактировать 1

Следующая конфигурация приводит к браузеру "ERR_SSL_PROTOCOL_ERROR".

server {
    listen 80;

    server_name xxxx.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://0.0.0.0:8090";
    }
 }


server {
       listen 443;
       server_name xxxx.com;
       rewrite ^(.*) http://$host$1 permanent;
 }

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Вы можете попытаться использовать пересылку TCP с помощью ngx_stream_core_module http://nginx.org/en/docs/stream/ngx_stream_core_module.html

stream {
    server {
        listen 443;
        proxy_pass 127.0.0.1:80;
    }
}
0 голосов
/ 09 февраля 2019

Использование letsencrypt для получения бесплатного сертификата, а затем использование https или перенаправление на http было для меня решением.

Кредиты @ RichardSmith

...