Gunicorn 配置參數

在以前的文章中有記錄WSGI容器的做用,以及咱們知道常見的容器就只有的uWSGI和Gunicorn,在以前的文章中有記錄他們的特性及優缺點,在這就不在多作描述。接下來將着重記錄一下Gunicorn的一些配置:html

config
-c CONFIG, --config CONFIGpython

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
--backlogapp

未決鏈接的最大數量,即等待服務的客戶的數量。必須是正整數,通常設定在64~2048的範圍內,通常設置爲2048,超過這個數字將致使客戶端在嘗試鏈接時錯誤tornado

workers
-w INT, --workers INT.net

用於處理工做進程的數量,爲正整數,默認爲1。worker推薦的數量爲當前的CPU個數*2 + 1。計算當前的CPU個數方法:線程

import multiprocessing
print multiprocessing.cpu_count()
1
2
worker_class
-k STRTING, --worker-class STRTINGdebug

要使用的工做模式,默認爲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 127.0.0.1:8000 -e abc=123 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 狀態行,如:GET /test HTTP/1.1
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
---------------------

摘自:https://blog.csdn.net/y472360651/article/details/78538188

相關文章
相關標籤/搜索