安裝uwsgi
# 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
● uwsgi.ini 配置示例:
[uwsgi]
socket = 127.0.0.1:8000
workers = 4
uwsgi 選項說明:
● 選項的格式:
1,命令行參數格式:--<option>
2,配置格式(以ini為例):option = xxxx
● 常用選項:
socket : 地址和端口號,例如:socket = 127.0.0.1:50000
processes : 開啟的進程數量
workers : 開啟的進程數量,等同於processes(官網的說法是spawn the specified number ofworkers / 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)。實際上最常用的,還是把運行記錄輸出到一個本地文件上。
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
項目中的配置文件
[root@6c2879a830ce run]# cat /tmp/uwsgi.ini
[uwsgi]
http-socket = :80
plugin = python
chdir = /code/run/cms
wsgi-file = cms/wsgi.py
processes = 4
threads = 4
max-request = 20480
log-x-forwarded-for = true
logto = /code/uwsgi_web.log
stats = 127.0.0.1:9191
文章參考鏈接:
http://blog.csdn.net/chenggong2dm/article/details/43937433