1. 程式人生 > >uWSGI的安裝與配置(官網摘錄)

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