常见的Django网站发布方式是通过python manage.py run server命令来发布,但这种发布方式一般只能用到一个进程,对服务器的并发和资源是一种浪费。其实,Django可以用uWsgi协议,实现多进程对外服务。
uWsgi的安装
yum install uwsig
uWsgi命令行方式(一般测试时一次性用)
举例一:uwsgi --http :8001 --wsgi-file test.py
举例二:uwsgi --socket 127.0.0.1:3031 --wsgi-file myapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
uWsgi的ini文件启动方式
uwsgi --ini ./uwsgi.ini # uwsgi启动jdango项目
uwsgi --stop ./uwsgi.pid # 停掉项目
xxx.ini文件举例:
# uwsig使用配置文件启动
[uwsgi]
#Nginx反向代理一般使用http-socket
http-socket=127.0.0.1:9090
#代理模式一般通过socket协议
#socket = 127.0.0.1:9090
# 指定IP端口,一般uwsgi直接对外web服务时使用
#http=192.168.66.36:8000
master = true //主进程
#vhost = true //多站模式
#no-site = true //多站模式时不设置入口模块和文件
# 项目目录
chdir=/www_bs/
# 指定项目的application
module=mkl_bs.wsgi:application
# 指定sock的文件路径
socket=/www_bs/script/uwsgi.sock
# 进程个数
workers=10
pidfile=/www_bs/script/uwsgi.pid
# 指定静态文件
static-map=/static=/www_bs/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=0
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/www_bs/script/uwsgi.log