Estoy tratando de implementar una aplicación Django/Django Channels en un VPS. La parte django del proyecto funciona, puedo visitar cualquier URL y las plantillas se están cargando, pero la parte Django Channels no funciona. Cada vez que intento acceder al websocket, se connection refused o WebSocket connection to 'ws://54.39.20.155/receiver' failed: Error during WebSocket handshake: Unexpected response code: 404
¿Puede alguien ayudarme a encontrar lo que estoy haciendo mal y decirme qué debo hacer para ejecutar Django Channels?
He aquí mi arreglo:
Medioambiente:
virtualenv django django-channels gunicorn nginx systemd/etc/nginx/sitios-disponibles/miproyecto
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.servicio
[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 Para iniciar gunicorn: sudo systemctl start gunicorn Para iniciar nginx: sudo systemctl restart nginx
Agregar a su 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; }