一、安裝python
pip install uwsginginx
二、配置web
(1)uwsgi執行通常有兩種方式:命令行和文件配置,可是命令行可能須要識記不少參數,所以採用文件配置是更通用的作法,文件格式支持不少種好比ini、xml、yaml等,筆者建議仍是採用比較簡單key-value形式ini模式,下面給出一個簡單的uwsgiini配置實例:緩存
[uwsgi]http=:5000chdir=/root/redash/wsgi-file=redash/wsgi.pycallable=appmaster=truevirtualenv=/root/redash/venv/pythonpath=/root/redash/processes=1threads=2服務器
執行:app
uwsgi--ini uwsgi.inisocket
(2)參數解釋:spa
• socket:socket文件,也能夠是地址+端口;命令行
• master:是否啓動主進程來管理其餘進程;日誌
• chdir:項目的根目錄;
• module:wsgi文件相對路徑;
• home:虛擬環境目錄;
• workers:開啓的進程數量;
• reload-mercy:設置在平滑的重啓(直到接收到的請求處理完才重啓)一個3) 、工做子進程中,等待這個工做結束的最長秒數;
• vacuum:服務結束後時候刪除對應的socket和pid文件;
• max_requests:每一個工做進程設置的請求上限;
• limit_as:限制每一個uwsgi進程佔用的虛擬內存數目;
• buffer_size:設置用於uwsgi包解析的內部緩存區大小;
• pid_file:指定pid文件;
• harakiri:請求的超時時間;
• daemonize:進程後臺執行,並保存日誌到特定路徑;若是uwsgi進程被supervisor管理,不能設置該參數;
三、uwsgi三種通信方式
配置:
socket=120.0.1:8888http-socket=120.0.1:8888http=0.0.0.0:8888
Nginx與uwsgi之間用socket通信如今大部分web服務器支持uwsgi,這是這三種方式最高效的一種形式,socket通訊速度會比http快。
Nginx與uwsgi之間用http-socket通信,這個適用於web服務器不支持uwsgi時。
後面兩個都是http方式,官方推薦的方式爲socket以及http-socket方式,顯然使用http方式會額外產生一個http進程,若是還經過nginx轉發,那麼效率上來講是相對比較低的。