Веб-сокет Django работает на локальном, но не на сервере Amazon EC2, ошибка во время рукопожатия Websocket - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть проект в веб-сокетах с angular и django, он отлично работает локально с Linux, когда я развернул его на Amazon EC2, который также является Linux и сделал то же самое с Linux локально, я прикрепил скриншот сервера вdjango в Amazon EC2, который выглядит нормально, снимок экрана сервера , клиент, который является угловым приложением, когда я пытаюсь подключиться к серверу this.globals.socket = new WebSocket('ws: //mydomain.com.com/stocks') , я получаю эту ошибку Ошибка подключения WebSocket к 'ws: //mydomain.com.com/stocks': ошибка во время рукопожатия WebSocket: Неожиданный код ответа: 404 .Нужно ли что-то настраивать в nginx.conf на сервере Amazon EC2? Или мне нужно включить что-то дополнительное на сервере ?.Любая помощь или подсказка будут действительно оценены.Большое спасибо.

1 Ответ

0 голосов
/ 20 декабря 2018

Ваш сервер работает на локальном хосте (127.0.0.1:8000).Это не доступно снаружи.Вы должны запустить его по общедоступному IP-адресу или настроить прокси-сервер для маршрутизации запросов на ваш локальный сервер.Также не забудьте открыть порт для всего мира через интерфейс управления EC2.

Также обратите внимание, что вы не должны запускать свой сервер через ./manage.py runserver на производстве.Вы должны использовать сервер приложений WSGI (например, Gunicorn) и веб-сервер (например, Nginx).Проверьте этот хороший учебник .По сути, вы запускаете Gunicorn, который привязан к сокету Unix, и Nginx, который передает (proxy_pass) все запросы к сокету Unix.

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