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
}
  1. 在本地启动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
    
  2. 使用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都有一定上升