nginx+uwsgi+djangorestframework+flower+celery+redis
- 2020 年 1 月 2 日
- 筆記
nginx+uwsgi+djangorestframework+flower+celery+redis配置如下:
nginx server配置, 没有https,注释掉ssl开头配置即可.
server { listen 80; listen 443 ssl; server_name localhost; # 域名 ssl_certificate your crt; # 证书crt ssl_certificate_key your key; # 证书key ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 指定项目路径uwsgi location / { include weixin_uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的 uwsgi_connect_timeout 180; # 设置连接uWSGI超时时间 uwsgi_pass unix:/data/www/weixin_api/weixin.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他 } # 指定静态文件路径 location /static/ { alias /data/www/weixin_api/static/; } }
安装uwsgi
pip3 install uwsgi
创建一个uwsgi.ini配置文件,配置如下:
# uwsgi使用配置文件启动 [uwsgi] # 项目目录 chdir=/data/www/weixin_api/ # 指定项目的application wsgi-file=weixin_api/weixin/wsgi.py # 指定sock的文件路径 socket=/data/www/weixin_api/weixin.sock # 进程个数 workers=8 pidfile=/data/www/weixin_api/script/uwsgi.pid # 指定IP端口 http=0.0.0.0:8006 # 指定静态文件 static-map=/static=/data/www/weixin_api/static # 启动uwsgi的用户名和用户组 uid=root gid=root # 启用主进程 master=true # 自动移除unix Socket和pid文件当服务停止的时候 vacuum=true # 序列化接受的内容,如果可能的话 thunder-lock=true # 启用线程 enable-threads=true # 设置自中断时间 harakiri=30 # 设置缓冲 post-buffering=8192 # 设置日志目录 daemonize=/data/www/weixin_api/script/uwsgi.log wsgi-file = /data/www/weixin_api/weixin/wsgi.py
uwsgi的关闭与启动,可以写一个shell脚本来控制
创建一个uwsgi_restart.sh,如下:
#!/bin/bash API_INI="/data/www/API_rest_framework/script/uwsgi.ini" WEIXIN_INI="/data/www/weixin_api/script/uwsgi.ini" UWSGI="/usr/local/python36/bin/uwsgi" PSID="ps aux | grep "uwsgi"| grep -v "grep" | wc -l" if [ ! -n "$1" ] then content="Usages: sh uwsgiserver.sh [start|stop|restart]" echo -e "