一、http/http-socket/socket
uwsgi通信接口配置的三种方式:
socket=127.0.0.1:8888
http-socket=127.0.0.1:8888
http=0.0.0.0:8888
三个方式看起来十分的相似,阅读了很多博客和官方文档,下面是自己的一些理解(可能不完全正确)!
图一是socket方式,现在大部分web服务器(如nginx)支持uwsgi, 这是这三种方式最高效的一种形式,socket通信速度会比http快
图二是http-socket方式,这个适用于web服务器不支持uwsgi时。
后面2个图都是http方式,但是这样会失去了nginx很多优秀的功能。
官方推荐的方式为socket以及http-socket方式,显然使用http方式会额外产生一个http进程,如果还通过nginx转发,那么效率上来说是相对比较低的。
二、一个较为完整的uwsgi文件:
[uwsgi]
# 外部访问地址,可以指定多种协议,现在用http便于调试,之后用socket
# http方式
socket = 127.0.0.1:8201
# 项目路径
pythonpath= /rasa/zndhjqr_nlp
# 虚拟环境的目录路径
virtualenv = /rasa/zndhjqr_nlp/venv
# 主程序文件
wsgi-file=%(pythonpath)/flask_restful/znjqr_api.py
# flask项目创建的application
callable = app
#主线程
master = true
# 处理器数
processes = 1
# 线程数
threads = 2