0x01 Introduction

uWSGI是一款Web服务器,它实现了WSGI协议、uwsgi、http等协议。 Nginx中的HttpUwsgiModule的作用是与uWSGI服务器进行交换。网上介绍速度比fcgi快十倍。特点如下:

  1. 超快的性能
  2. 低内存占用
  3. 多app管理
  4. 详尽的日志功能
  5. 高度可定制性
    uWSGI可以通过pip安装

0x02 uwsgi配置

创建配置文件,例如config.in

1
2
3
4
5
6
7
8
[uwsgi]
socket = 127.0.0.1:8001
chdir = /home/www/ #指向网站目录
wsgi-file = manage.py #python启动的程序文件
callable = app #python程序内的application变量名
process = 4
threads = 20
stats = 127.0.0.1:9191

这里我们通过supervisor控制uwsgi的启动。supervisor配置文件(位于:/etc/supervisor/conf.d/)*.conf:

1
2
3
4
5
6
7
8
9
10
11
12
[program:app]
command=/home/pythonenv/bin/uwsgi /home/www/config.ini
#命令所在目录
directory=/home/www

user=root

autostart=true
autorestart=true

stdout_logfile=/home/www/supervisor_uwsgi.log
[supervisord] #添加supervisor服务模块

接下来配置ngin

1
2
3
4
5
6
7
8
9
10
11
server{
listen 80;
server_name xxx.xxx.xxx.xxx; #公网地址
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001 #本地uwsgi服务端口
uwsgi_param UWSGI_PYTHON /home/www/pythonenv;
uwsgi_param UWSGI_CHDIR /home/www;
uwsgi_param UWSGI_SCRIPT manager:app; #指定启动程序
}
}