首页 > 解决方案 > 如何使用 nginx 和 django chanels 设置 gunicorn 和 uvicorn?

问题描述

我被这个问题困住了,我需要帮助。我正在尝试使用 django-channels 配置 nginx 服务器,并且我有以下配置
Nginx

server {
       server_name {{ my_domain }};
       location = /favicon.ico {access_log off;log_not_found off;}

       client_max_body_size 32m;

    root /var/www/religion-python;

       location /static {
            alias /var/www/religion-python/static/;
       }

       location /media {
            alias /var/www/religion-python/media;
       }

       location / {
            include proxy_params;
            proxy_pass http://unix:/run/gunicorn.sock;
      }
      
      location /ws/ {
            proxy_pass http://0.0.0.0:9000;
            proxy_http_version 1.1;

            proxy_read_timeout 86400;
            proxy_redirect     off;

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            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_set_header X-Forwarded-Host $server_name;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/api.agro.dots.md/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/api.agro.dots.md/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}


独角兽:

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

[Service]
User=root
Group=www-data
WorkingDirectory=/var/www/religion-python
ExecStart=/var/www/religion-python/bin/gunicorn\
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          Agronomi.wsgi:application

[Install]
WantedBy=multi-user.target

我使用本教程来配置 gunicorn,但是对于 websocket,我在django-channel 网站上读到,我必须使用主管设置 daphne,我不知道如何也找不到如何做到这一点。有人可以帮助我提供一些有关如何执行此操作的教程或提示,或者有人可以向我解释需要什么主管吗?我读到 uvicorn 很容易使用 gunicorn 和 django-chanels 安装和配置,但我还是没有发现如何做到这一点。

标签: django-channelsasgiuvicorn

解决方案


推荐阅读