Конфигурация nginx обратный прокси + докер + перенаправление с http на https - PullRequest
0 голосов
/ 09 июля 2019

Контекст

У меня есть контейнер nginx перед несколькими другими контейнерами.Один из них работает с внешним интерфейсом node.js, который представлен на 10001: 3000

Мне удалось собрать воедино конфигурацию nginx, которая частично работает, разрешая завершение SSL на 443 для контейнера на 10001.

Однако теперь мне нужно перенаправить весь трафик на HTTPS и, в идеале, запретить работу порта 10001, какой-то http перехватывает все?

Вот моя конфигурация localhost для этого.

user  www-data;

error_log  /var/log/nginx/error.log warn;
pid        /run/nginx.pid;

worker_processes  2;


events {
    worker_connections  1024;
    multi_accept off;
}

stream {
    upstream stream_backend {
         server 172.17.0.1:10001;
        # server backend2.example.com:12345;
         #server backend3.example.com:12345;
    }

    server {
        listen                443 ssl;
        proxy_pass            stream_backend;

        ssl_certificate /etc/letsencrypt/live/localhost/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/localhost/fullchain.pem;
        ssl_protocols         SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers           HIGH:!aNULL:!MD5;
        ssl_session_cache     shared:SSL:20m;
        ssl_session_timeout   4h;
        ssl_handshake_timeout 30s;


        #...
    }
}

Помимо всего этого, я пытаюсь получить синтаксическую ошибку или другую ошибку.Кто-нибудь может дать какой-нибудь простой совет?

1 Ответ

1 голос
/ 09 июля 2019

Если вы используете docker-compose и добавляете свой API и nginx в одну и ту же мостовую сеть, вы можете открыть порт для вашего контейнера api и удалить директиву ports.Это позволит nginx взаимодействовать с контейнером API, но не будет открытого порта для публично доступного API.

ports:
  - "8000:80"
expose:
  - "8000"

Выше директива портов открывает порт 8000 для общего доступа.Expose делает 8000 доступным только через локальную подсеть или мостовую сеть.Итак, в этом сценарии я предлагаю удалить раздел портов.Expose также работает с командой run, но в этом случае вам нужно будет создать мостовую сеть вручную.

У меня недавно была такая же проблема.На самом деле у меня было несколько проблем, но это был один из них.Смотрите мой вопрос и ответ здесь для более подробной информации.

Обратный прокси-сервер NGINX не работает для webAPI ядра .NET, работающего в Docker

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...