概要
WSGI:全拼为Python Web Server Gateway Interface,Python Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。WSGI没有官方的实现, 因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行。
项目默认会生成一个wsgi.py文件,确定了settings模块、application对象。
application对象:在Python模块中使用application对象与应用服务器交互。
settings模块:用于进行项目配置。
uWSGI
uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器。uWSGI代码完全用C编写,效率高、性能稳定。
安装
pip install uwsgi
配置
配置uWSGI,创建uwsgi.ini文件,配置如下:
[uwsgi]
socket=:8899 # /tmp/uwsgi.sock,指定socket文件,也可以指定为:8899,这样就会监听到网络套接字
#http=ip:port # 直接作为http端口提供服务时,如127.0.0.1:8080
chdir=/webserver/www/demosite # 指定项目目录,在配置多站点时,不要启用
module=demosite.wsgi # 指向项目下的wsgi模块,加载demosite/wsgi.py这个模块,在配置多站点时,不要启用
#wsgi-file=/webserver/www/demosite/wsgi.py #载入wsgi-file(加载wsgi.py文件)
master=true # 启动主进程
processes=2 # 启动2个工作进程
threads=2 # 每个工作进程启动2个线程
#py-autoreload=1 # py文件修改,自动加载
pidfile=uwsgi.pid # 指定pid文件
#daemonize=uwsgi.log # 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器
vacuum = true # 当服务器退出的时候自动删除unix socket文件和pid文件
启动
uwsgi --ini uwsgi.ini
关闭
uwsgi --stop uwsgi.pid