django-channels - 如何使用 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 安装和配置,但我还是没有发现如何做到这一点。
解决方案
推荐阅读
- nginx - 两个上游,一个 http,另一个 https
- javascript - 如何配置 remark.js 来解析 Markdown 中嵌入的 HTML?
- python - 运动不起作用 pygame,它告诉我 x 没有定义,即使它在第 64 行定义
- javascript - 在 div 中加载时加载进度条不起作用
- elixir - Elixir/Phoneix - SFTPClient 连接错误
- css - 用于缩放高分辨率的媒体
- xml - 模板和xml
- python - 同时运行多个 Google Colab Notebook
- mysql - “Azure Defender for MySQL”和“Azure Database for MySQL 的高级威胁防护”之间的区别
- python - Seaborn 联合图用相关性注释