仓库源文站点原文


tags: [wsgi]

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都有一定上升