一、安装python
pip install uwsginginx
二、配置web
(1)uwsgi执行通常有两种方式:命令行和文件配置,可是命令行可能须要识记不少参数,所以采用文件配置是更通用的作法,文件格式支持不少种好比ini、xml、yaml等,笔者建议仍是采用比较简单key-value形式ini模式,下面给出一个简单的uwsgiini配置实例:缓存
[uwsgi]http=:5000chdir=/root/redash/wsgi-file=redash/wsgi.pycallable=appmaster=truevirtualenv=/root/redash/venv/pythonpath=/root/redash/processes=1threads=2服务器
执行:app
uwsgi--ini uwsgi.inisocket
(2)参数解释:spa
• socket:socket文件,也能够是地址+端口;命令行
• master:是否启动主进程来管理其余进程;日志
• chdir:项目的根目录;
• module:wsgi文件相对路径;
• home:虚拟环境目录;
• workers:开启的进程数量;
• reload-mercy:设置在平滑的重启(直到接收到的请求处理完才重启)一个3) 、工做子进程中,等待这个工做结束的最长秒数;
• vacuum:服务结束后时候删除对应的socket和pid文件;
• max_requests:每一个工做进程设置的请求上限;
• limit_as:限制每一个uwsgi进程占用的虚拟内存数目;
• buffer_size:设置用于uwsgi包解析的内部缓存区大小;
• pid_file:指定pid文件;
• harakiri:请求的超时时间;
• daemonize:进程后台执行,并保存日志到特定路径;若是uwsgi进程被supervisor管理,不能设置该参数;
三、uwsgi三种通信方式
配置:
socket=120.0.1:8888http-socket=120.0.1:8888http=0.0.0.0:8888
Nginx与uwsgi之间用socket通信如今大部分web服务器支持uwsgi,这是这三种方式最高效的一种形式,socket通讯速度会比http快。
Nginx与uwsgi之间用http-socket通信,这个适用于web服务器不支持uwsgi时。
后面两个都是http方式,官方推荐的方式为socket以及http-socket方式,显然使用http方式会额外产生一个http进程,若是还经过nginx转发,那么效率上来讲是相对比较低的。