WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。
WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。
WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。
很多框架都自带了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。当然性能都不好,自带的 web server 更多的是测试用途,发布时则使用生产环境的 WSGI server或者是联合 nginx 做 uwsgi 。也就是说,WSGI就像是一座桥梁,一边连着web服务器(如 nginx),另一边连着Python的应用程序Application。但是呢,这个桥的功能很弱,有时候还需要别的桥来帮忙才能进行处理。
uWSGI 是一个(巨大的) C 应用,所以你需要一个 C 编译器(比如 gcc 或者 clang)和 Python 开发版头文件。
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
SystemOS: CentOS-7.5_x64
Python: 3.6
virtual: Anaconda3
# 在虚拟环境中直接安装
$ pip install uwsgi
hello_world.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
启动
uwsgi --http 0.0.0.0:8000 --wsgi-file hello_world.py
使用浏览器访问http://ip:8000
启动 uwsgi 可以添加多个参数
uwsgi --socket 127.0.0.1:3031 --wsgi-file uwsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:8001
将配置文件集中写在配置文件中
uwsgi.ini
[uwsgi]
socket = 127.0.0.1:3031
chdir = /home/foobar/myproject/
pythonpath = ..
processes = 4
threads = 2
stats = 127.0.0.1:9191
原文:https://www.cnblogs.com/janlle/p/11776674.html