Django каналов и nginx - ошибка при рукопожатии - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь развернуть приложение Django / Django Channels на VPS. django часть проекта работает, я могу посетить любой URL, и шаблоны загружаются, но часть Django Channels не работает. Всякий раз, когда я пытаюсь добраться до веб-сокета, я получаю connection refused или WebSocket connection to 'ws://54.39.20.155/receiver' failed: Error during WebSocket handshake: Unexpected response code: 404

Может кто-нибудь помочь мне найти то, что я делаю неправильно, и сказать мне, что мне нужно сделать, чтобы запустить Django Каналы?

Вот мои настройки:

Среда:

virtualenv
django
django-channels
gunicorn
nginx
systemd

/ etc / nginx / sites-available / myproject

server {
        listen 80;
        server_name 54.39.20.155;

        location = /favicon.ico { access_log off; log_not_found off; }
        location /static/ {
            root /WaitingRoomVenv/WaitingRoom/WaitingRoom/static;
        }

        location / {
            include proxy_params;
            proxy_pass http://unix:/WaitingRoomVenv/WaitingRoomEnv.sock;
        }
    }

/ etc / systemd / system / gunicorn.service

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/WaitingRoomVenv/WaitingRoom
ExecStart=/WaitingRoomVenv/WaitingRoomEnv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/WaitingRoomVenv/WaitingRoomEnv.sock WR.wsgi:application

[Install]
WantedBy=multi-user.target

Для запуска gunicorn: sudo systemctl start gunicorn Для запуска nginx: sudo systemctl restart nginx

1 Ответ

1 голос
/ 16 апреля 2020

Добавьте к вашему nginx .conf

location /receiver {
    proxy_pass http://unix:/WaitingRoomVenv/WaitingRoomEnv.sock;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...