uWSGI的安装与配置(官网摘录)

来源:互联网 发布:java分布式 编辑:程序博客网 时间:2024/05/24 07:01

原文链接 :http://blog.csdn.net/chenggong2dm/article/details/43937433 向作者致敬!!!


■ 安装uwsgi:

作为一个严谨(其实就是有强迫症)的程序,为了确保正确安装这个东西,费了我好长时间。首先,查找包里的readme,发现没有安装提示。各种被墙,辗转良久,才查看到uwsgi的官方文档说明:
http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html 

所以,也就有了本文。

言归正传,下面是 uwsgi 的两种安装方式


方式一:

采用源码(source tarball)安装uwsgi。

可以去pypi,搜索uwsgi下载:

https://pypi.python.org/pypi/uWSGI/ 

安装命令如下:

tar xvzf uwsgi-2.0.9.tar.gz

cd uwsgi-2.0.9

make

方式二:

使用pip安装uwsgi(这也是django1.7文档里推荐的方式):

pip install uwsgi


注:下图为官网的安装说明截图:


■ 配置uwsgi:

首先要明确的是,如果你喜欢用命令行的方式(如shell)敲命令,那可以省去任何配置。

但是,绝大多数人,还是不愿意记那么长的命令,反复敲的。所以uwsgi里,就给大家提供了多种配置,省去你启动时候,需要敲一长串命令的过程。

uwsgi 有多种配置可用:

1,ini ,

2,xml 

3,json

4,yaml


从uwsgi的官方文档来看,貌似(我个人的理解)推荐用ini方式,所以下面的配置也都是基于ini的。


● ini 格式说明:

1,ini配置为 key=value 形式

2,在ini配置文件里,#号为注释,

3,布尔值为 true  false 

4,在命令行里,uwsgi myconf.ini 等价于 uwsgi --ini myconf.ini 


●  ini 配置示例:

[python] view plain copy
  1. [uwsgi]  
  2. socket = 127.0.0.1:8000  
  3. workers = 4  

■ uwsgi 选项说明:

● 选项的格式:

1,命令行参数格式:--<option> 

2,配置格式(以ini为例):option = xxxx 


● 常用选项:

socket : 地址和端口号,例如:socket = 127.0.0.1:50000

processes : 开启的进程数量

workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number of  workers / processes

chdir : 指定运行目录(chdir to specified directory before apps loading)

wsgi-file : 载入wsgi-file(load .wsgi file)

stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)

threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)

master : 允许主进程存在(enable master process)

daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。

log-maxsize :以固定的文件大小(单位KB),切割日志文件。 例如:log-maxsize = 50000000  就是50M一个日志文件。 

pidfile : 指定pid文件的位置,记录主进程的pid号。

vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)

disable-logging : 不记录请求信息的日志。只记录错误以及uWSGI内部消息到日志中。如果不开启这项,那么你的日志中会大量出现这种记录:

[pid: 347|app: 0|req: 106/367] 117.116.122.172 () {52 vars in 961 bytes} [Thu Jul  7 19:20:56 2016] POST /post => generated 65 bytes in 6 msecs (HTTP/1.1 200) 2 headers in 88 bytes (1 switches on core 0)


 其他选项说明:

其他选项,具体可以通过 --help 选项来查看:

uwsgi --help







注:下图为官网的 django  ini 配置说明截图:


====================================================================================

■ 下面是一些比较实用的配置:

[uwsgi]
socket = 127.0.0.1:50000
chdir = /home/httpServer/
wsgi-file = httpServer/wsgi.py
processes = 4
stats = 127.0.0.1:9090
daemonize = /home/log/httpServer.log
pidfile = /tmp/uwsgi.pid
vacuum = true
log-maxsize = 50000000

disable-logging = true



■ 参考:

A,《官方文档》:

http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html

B,《uWSGI参考资料》:

http://www.cnblogs.com/zhouej/archive/2012/03/25/2379646.html

原创粉丝点击