uwsgi配置文件格式
首先妒牙,uwsgi是可以完全不用配置文件彼哼,跟普通的shell命令一樣,也可以正常使用湘今,但是每次要修改的時候敢朱,也得輸入全部的參數(shù),所以保存到配置文件摩瞎,然后修改文件后加載文件要方便的多拴签。
uwsgi支持ini、xml旗们、json等格式蚓哩,我們只用過xml和ini2種,也僅此做個示例
xml
<uwsgi>
<socket>:98</socket> #本地監(jiān)聽的端口
<chdir>/project-dir</chdir> #項(xiàng)目主目錄
<wsgi-file>/project-dir/wsgi.py</wsgi-file> #wsgi路徑
<processes>2</processes> #工作進(jìn)程數(shù)
<threads>10</threads> #工作線程數(shù)
<daemonize>uwsgi.daemonize.log</daemonize> #日志文件路徑
<master>true</master>
<listen>50</listen> #監(jiān)聽隊(duì)列
<enable-threads/> #允許在請求中開啟新線程
<memory-report/> #日志記錄請求的內(nèi)存等詳細(xì)信息
<pidfile>pidfile-path</pidfile> #pidfile路徑
</uwsgi>
ini
[uwsgi]
chdir = %d../ #指定project目錄為主目錄
master = true #以獨(dú)立守護(hù)進(jìn)程運(yùn)行
env = DJANGO_SETTINGS_MODULE=project_name.settings #項(xiàng)目的settings模塊路徑
module = project_name.wsgi:application #wsgi的application模塊路徑
socket=/project_dir/project.sock #本地監(jiān)聽的socket
http-websockets #websokcet over http,官放文檔說nginx >= 1.4 works fine and without additional configuration.
gevent=100 #gevent協(xié)程支持上渴,最大100個
gevent-monkey-patch #gevent協(xié)程補(bǔ)丁
processes = 2 #2個處理進(jìn)程
enable-threads = true #允許在請求中開啟新線程
listen=300 #監(jiān)聽隊(duì)列
daemonize=uwsgi.daemonize.log #日志文件
memory-report #日志記錄請求的內(nèi)存等詳細(xì)信息
pidfile=/pidfile-path #pidfile路徑
uwsgi基本操作
啟動uwsgi
uwsgi -x xxxx.xml #xml配置文件
uwsgi -i xxxx.ini #ini配置文件
重啟uwsgi
首選要找到uwsgi的主進(jìn)程號岸梨,如果使用了pidfile記錄進(jìn)程號喜颁,則可以簡單的找到master pid,如果未使用pidfile選項(xiàng)曹阔,則到日志中查看日志
spawned uWSGI master process (pid: 7486) #主進(jìn)程號
spawned uWSGI worker 1 (pid: 7487, cores: 10)
spawned uWSGI worker 2 (pid: 7488, cores: 10)
然后使用-HUP或-TERM
kill -HUP pid #友好重啟半开,不會丟失會話
kill -TERM pid #強(qiáng)制重啟,可能丟失會話
結(jié)束uwsgi
同重啟uwsgi赃份,需要先得到uwsgi的主進(jìn)程號稿茉,然后使用
kill -INT pid
使用killall
在沒使用pidfile參數(shù)記錄uwsgi主進(jìn)程號的情況下,如果服務(wù)器上只有一個uwsgi實(shí)例芥炭,可以使用killall命令控制uwsgi
killall -HUP uwsgi #所有的uwsgi實(shí)例都重啟
killall -INT uwsgi #關(guān)閉所有uwsgi實(shí)例