Внешний интерфейс, внутренний сервер на одном сервере с HTTPS и Websocket одновременно - PullRequest
0 голосов
/ 11 апреля 2020

Это говорит о том, что у нас есть проект веб-сайта. Внешний интерфейс будет вызывать серверную часть через протокол Websocket. В бэкэнде у нас есть сервер Websocket (через торнадо) внутри контейнера docker. Внутренний и внешний интерфейсы находятся на одном и том же сервере.

Здесь возникает проблема, когда мы хотим установить HTTPS для всего приложения. Внешний интерфейс будет использовать порт 443 по умолчанию, а внутреннему также понадобится 443, что противоречит друг другу. Как я должен сделать, чтобы избежать этого? Можно ли использовать wss (безопасный веб-сокет) на другом порту, когда мы инициируем запрос со стороны клиента (от начальной страницы к бэкэнду)?

Кстати, имя домена настраивается другим сервером.

1 Ответ

0 голосов
/ 11 апреля 2020

Порт внутри docker контейнера с бэкэндом составляет 443 в контейнере. Но вы можете установить порт локальной машины. Используйте флаг -p:

docker run -d --name myName -p 443:445 image:tag

Порт 443 контейнера будет прослушивать через порт 445 на вашем локальном хосте. Вы можете поменять 445 на другую, какую захотите.

Вы можете использовать localhost: 445 .....

...