config
-c CONFIG, --config CONFIG
Gunicorn配置檔案路徑,路徑形式的字元串格式,如:
gunicorn -c gunicorn.conf manager:app
- 1
bind
-b ADDRESS, --bind ADDRESS
Gunicorn綁定伺服器套接字,Host形式的字元串格式。Gunicorn可綁定多個套接字,如:
gunicorn -b 127.0.0.1:8000 -b [::1]:9000 manager:app
- 1
backlog
--backlog
未決連接配接的最大數量,即等待服務的客戶的數量。必須是正整數,一般設定在64~2048的範圍内,一般設定為2048,超過這個數字将導緻用戶端在嘗試連接配接時錯誤
workers
-w INT, --workers INT
用于處理工作程序的數量,為正整數,預設為1。
worker
推薦的數量為目前的CPU個數*2 + 1。計算目前的CPU個數方法:
import multiprocessing
print multiprocessing.cpu_count()
- 1
- 2
worker_class
-k STRTING, --worker-class STRTING
要使用的工作模式,預設為
sync
。可引用以下常見類型“字元串”作為捆綁類:
- sync
- eventlet:需要下載下傳eventlet>=0.9.7
- gevent:需要下載下傳gevent>=0.13
- tornado:需要下載下傳tornado>=0.2
- gthread
- gaiohttp:需要python 3.4和aiohttp>=0.21.5
threads
--threads INT
處理請求的工作線程數,使用指定數量的線程運作每個worker。為正整數,預設為1。
worker_connections
--worker-connections INT
最大用戶端并發數量,預設情況下這個值為1000。此設定将影響
gevent
和
eventlet
工作模式
max_requests
--max-requests INT
重新啟動之前,工作将處理的最大請求數。預設值為0。
max_requests_jitter
--max-requests-jitter INT
要添加到
max_requests
的最大抖動。抖動将導緻每個工作的重新開機被随機化,這是為了避免所有工作被重新開機。
randint(0,max-requests-jitter)
timeout
-t INT, --timeout INT
超過這麼多秒後工作将被殺掉,并重新啟動。一般設定為30秒
graceful_timeout
--graceful-timeout INT
優雅的人工逾時時間,預設情況下,這個值為30。收到重新開機信号後,從業人員有那麼多時間來完成服務請求。在逾時(從接收到重新開機信号開始)之後仍然活着的工作将被強行殺死。
keepalive
--keep-alive INT
在
keep-alive
連接配接上等待請求的秒數,預設情況下值為2。一般設定在1~5秒之間。
limit_request_line
--limit-request-line INT
HTTP請求行的最大大小,此參數用于限制HTTP請求行的允許大小,預設情況下,這個值為4094。值是0~8190的數字。此參數可以防止任何DDOS攻擊
limit_request_fields
--limit-request-fields INT
限制HTTP請求中請求頭字段的數量。此字段用于限制請求頭字段的數量以防止DDOS攻擊,與
limit-request-field-size
一起使用可以提高安全性。預設情況下,這個值為100,這個值不能超過32768
limit_request_field_size
--limit-request-field-size INT
限制HTTP請求中請求頭的大小,預設情況下這個值為8190。值是一個整數或者0,當該值為0時,表示将對請求頭大小不做限制
reload
--reload
代碼更新時将重新開機工作,預設為False。此設定用于開發,每當應用程式發生更改時,都會導緻工作重新啟動。
reload_engine
--reload-engine STRTING
選擇重載的引擎,支援的有三種:
- auto
- pull
- inotity:需要下載下傳
spew
--spew
列印伺服器執行過的每一條語句,預設False。此選擇為原子性的,即要麼全部列印,要麼全部不列印
check_config
--check-config
顯示現在的配置,預設值為False,即顯示。
preload_app
--preload
在工作程序被複制(派生)之前加載應用程式代碼,預設為False。通過預加載應用程式,你可以節省RAM資源,并且加快伺服器啟動時間。
chdir
--chdir
加載應用程式之前将
chdir
目錄指定到指定目錄
daemon
--daemon
守護Gunicorn程序,預設False
raw_env
-e ENV, --env ENV
設定環境變量(key=value),将變量傳遞給執行環境,如:
gunicorin -b : -e abc= manager:app
- 1
在配置檔案中寫法:
raw_env=["abc=123"]
- 1
pidfile
-p FILE, --pid FILE
設定pid檔案的檔案名,如果不設定将不會建立pid檔案
worker_tmp_dir
--worker-tmp-dir DIR
設定工作臨時檔案目錄,如果不設定會采用預設值。
accesslog
--access-logfile FILE
要寫入的通路日志目錄
access_log_format
--access-logformat STRING
要寫入的通路日志格式。如:
access_log_format = '%(h)s %(l)s %(u)s %(t)s'
- 1
常見格式說明:
識别碼 | 說明 |
---|---|
h | 遠端位址 |
l | “-“ |
u | 使用者名 |
t | 時間 |
r | 狀态行,如: |
m | 請求方法 |
U | 沒有查詢字元串的URL |
q | 查詢字元串 |
H | 協定 |
s | 狀态碼 |
B | response長度 |
b | response長度(CLF格式) |
f | 參考 |
a | 使用者代理 |
T | 請求時間,機關為s |
D | 請求時間,機關為ms |
p | 程序id |
{Header}i | 請求頭 |
{Header}o | 相應頭 |
{Variable}e | 環境變量 |
errorlog
--error-logfile FILE, --log-file FILE
要寫入錯誤日志的檔案目錄。
loglevel
--log-level LEVEL
錯誤日志輸出等級。
支援的級别名稱為:
- debug(調試)
- info(資訊)
- warning(警告)
- error(錯誤)
- critical(危急)
更多配置:http://docs.gunicorn.org/en/stable/settings.html#server-mechanics
</article>