django默认是wsgi启动,不能利用到多核执行效率很低,通过uwsgi来解决这个问题。

 

python虚拟环境安装配置:

https://www.cnblogs.com/zezhou/p/14509198.html

python虚拟环境使用操作:

https://www.cnblogs.com/zezhou/p/14509203.html

 

安装uwsgi:

1. 现需要进入虚拟环境中,因为要在虚拟环境中运行项目

workon 环境名称

2. 安装

pip3 install -i https://pypi.douban.com/simple uwsgi

 

uwsgi.ini配置

// 在项目根目录下新建文件uwsgi.ini,log目录

[uwsgi]

; 项目所在目录,和manage.py同级
chdir = /project/contract_manager/

; 监听的端口,当没有nginx时候使用这个
http = 0.0.0.0:8000
; 代理静态资源:路径映射,没nginx时候要配置的
static-map = /static= static/


; 指定和nginx进行套接字通信的方式:端口或文件
; socket = 127.0.0.1:8000
; socket = ./contract_manager.sock


; python虚拟环境所在目录
home=/env/python/contract_manager
PYTHONHOME = /env/python/contract_manager/bin/

; 主应用中的wsgi文件
wsgi-file = contract_manager/wsgi.py

; 启动一个master进程,来管理其余的子进程
master=True

;开俩进程
processes = 2
;开四个线程
threads = 4

; 保存主进程的pid,用来控制uwsgi服务
pidfile=./uwsgi.pid
; 启动项目  uwsgi uwsgi.ini
; uwsgi --stop/reload xxx.pid  停止/重启uwsgi

; django的运行日志保存的文件路径
daemonize=./log/uwsgi.log

; 设置每个工作进程处理请求的上限,达到上限时,将回收(重启)该进程。可以预防内存泄漏
max-requests=5000

; 服务停止时自动移除unix Socket和pid文件
vacuum=true

 

uwsgi命令:

// 切换至项目根目录下或者全路径

uwsgi --ini ./uwsgi.ini    # uwsgi启动jdango项目

uwsgi --stop ./uwsgi.pid    # 停掉项目