uWSGI的安裝與配置(官網摘錄)
■ 安裝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 配置示例:
[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 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