Uwsgi
What is wsgi?
web server gateway interface
What is uwsgi?
uwsgi是一个软件,是WSGI标准的一种实现方式。
## uwsgi reference:
http://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html#the-first-wsgi-application
### install
pip install uwsgi
which uwsgi
/usr/bin/uwsgi
install from source code
git clone https://github.com/unbit/uwsgi.git
cd uwsgi-master
python setup.py install
command
foobar.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
cmd
uwsgi --uid 1001 --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
解释说明:
–uid 1001 已uid为1001的用户运行
–stats 127.0.0.1:9191 在本地回环接口的9191端口上提供uwgsi状态信息,这里的地址配置要注意
Bind the stats socket to a private address (unless you know what you are doing), otherwise everyone could access it!
nc 127.0.0.1 9191
可以查看stats信息
把uwsgi和nginx结合使用
1.nginx中做如下配置
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031; # 可以理解为把外面的请求转交给127.0.0.1:3031
}
- 在本地启动uwsgi程序
# 注意foobar.py是要替换掉的 uwsgi --socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
- 使用django中的wsgi.py ``` uwsgi –socket 127.0.0.1:3031 –chdir /Images/cve_pro –wsgi-file /Images/cve_pro/cve_pro/wsgi.py –master –processes 4 –threads 2 –stats 127.0.0.1:9191
## 性能测试
使用wrk进行测试
wrk -t 6 -c 14000 http://127.0.0.1:81/index ``` 使用top监控进程cpu利用率,发现nginx和uwsgi cpu都有一定上升