博客 / 詳情

返回

Redash中文版配置uwsgi服務

1、安裝

pip install uwsgi

2、配置

(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

執行:

uwsgi--ini uwsgi.ini

(2)參數解釋:

• 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管理,不能設置該參數;

3、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轉發,那麼效率上來説是相對比較低的。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.