安裝uwsgi
# pip install uwsgi
配置uwsgi:
首先要明確的是,如果你喜歡用命令行的方式(如shell)敲命令,那可以省去任何配置。
但是,絕大多數(shù)人,還是不愿意記那么長(zhǎng)的命令,反復(fù)敲的。所以u(píng)wsgi里,就給大家提供了多種配置,省去你啟動(dòng)時(shí)候,需要敲一長(zhǎng)串命令的過程。
uwsgi 有多種配置可用:
1,ini ,
2,xml ,
3,json,
4,yaml。
從uwsgi的官方文檔來看,貌似(我個(gè)人的理解)推薦用ini方式,所以下面的配置也都是基于ini的。
● ini 格式說明:
1,ini配置為 key=value 形式
2,在ini配置文件里,#號(hào)為注釋,
3,布爾值為 true 和 false?
4,在命令行里,uwsgi myconf.ini 等價(jià)于 uwsgi --ini myconf.ini
● uwsgi.ini 配置示例:
[uwsgi]?
socket = 127.0.0.1:8000?
workers = 4
uwsgi 選項(xiàng)說明:
● 選項(xiàng)的格式:
1,命令行參數(shù)格式:--?
2,配置格式(以ini為例):option = xxxx
● 常用選項(xiàng):
socket : 地址和端口號(hào),例如:socket = 127.0.0.1:50000
processes : 開啟的進(jìn)程數(shù)量
workers : 開啟的進(jìn)程數(shù)量,等同于processes(官網(wǎng)的說法是spawn the specified number ofworkers / processes)
chdir : 指定運(yùn)行目錄(chdir to specified directory before apps loading)
wsgi-file : 載入wsgi-file(load .wsgi file)
stats : 在指定的地址上,開啟狀態(tài)服務(wù)(enable the stats server on the specified address)
threads : 運(yùn)行線程。由于GIL的存在,我覺得這個(gè)真心沒啥用。(run each worker in prethreaded mode with the specified number of threads)
master : 允許主進(jìn)程存在(enable master process)
daemonize : 使進(jìn)程在后臺(tái)運(yùn)行,并將日志打到指定的日志文件或者udp服務(wù)器(daemonize uWSGI)。實(shí)際上最常用的,還是把運(yùn)行記錄輸出到一個(gè)本地文件上。
pidfile : 指定pid文件的位置,記錄主進(jìn)程的pid號(hào)。
vacuum : 當(dāng)服務(wù)器退出的時(shí)候自動(dòng)清理環(huán)境,刪除unix socket文件和pid文件(try to remove all of the generated file/sockets)
disable-logging : 不記錄請(qǐng)求信息的日志。只記錄錯(cuò)誤以及uWSGI內(nèi)部消息到日志中。如果不開啟這項(xiàng),那么你的日志中會(huì)大量出現(xiàn)這種記錄:
[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)
● 其他選項(xiàng)說明:
其他選項(xiàng),具體可以通過 --help 選項(xiàng)來查看:
uwsgi --help
項(xiàng)目中的配置文件
[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
uwsgi文檔:
http://uwsgi-docs.readthedocs.io/en/latest/Options.html
https://www.zhihu.com/question/27295854