Run simultaneously UWSGI and ASGI with Django Run simultaneously UWSGI and ASGI with Django django django

Run simultaneously UWSGI and ASGI with Django


It is possible to run WSGI alongside ASGI here is an example of a Nginx configuration:

server {    listen 80;     server_name {{ server_name }};    charset utf-8;    location /static {        alias {{ static_root }};    }    # this is the endpoint of the channels routing    location /ws/ {        proxy_pass http://localhost:8089; # daphne (ASGI) listening on port 8089        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection "upgrade";    }    location / {        proxy_pass http://localhost:8088; # gunicorn (WSGI) listening on port 8088        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_connect_timeout 75s;        proxy_read_timeout 300s;        client_max_body_size 50m;    }}

To use the /ws/ correctly, you will need to enter your URL like that:

ws://localhost/ws/your_path

Then nginx will be able to upgrade the connection.