欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3 gunicorn配置文件的用法解讀

 更新時(shí)間:2025年04月16日 10:13:07   作者:小白、瑤  
這篇文章主要介紹了python3 gunicorn配置文件的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python3 gunicorn配置文件

配置文件

import multiprocessing

#并行工作進(jìn)程數(shù)
workers = multiprocessing.cpu_count() * 2 + 1
# workers = 4

#指定每個(gè)工作者的線程數(shù),當(dāng)使用gevent時(shí),這個(gè)不起作用
threads = 4

# 控制是否在主進(jìn)程中預(yù)加載應(yīng)用程序。當(dāng)設(shè)置為 True 時(shí),Gunicorn 在主進(jìn)程中加載應(yīng)用程序,然后將其復(fù)制到每個(gè)工作進(jìn)程中。當(dāng)設(shè)置為 False 時(shí),應(yīng)用程序在每個(gè)工作進(jìn)程中獨(dú)立加載
preload_app = False

#端口 5000
bind = '127.0.0.1:8200'

#設(shè)置守護(hù)進(jìn)程,將進(jìn)程交給supervisor管理
daemon = 'true'

#工作模式協(xié)程,使用gevent模式(協(xié)程模式),默認(rèn)的是sync模式,共有sync、eventlet、gevent、tornado
worker_class = 'gevent' 

# 最大的并發(fā)請(qǐng)求數(shù)為  workers*2000
worker_connections = 2000

# 最大客戶端并發(fā)數(shù)量,默認(rèn)情況下這個(gè)值為1000。此設(shè)置將影響gevent和eventlet工作模式,當(dāng)最大請(qǐng)求數(shù)量達(dá)到時(shí)進(jìn)程會(huì)重啟
max_requests = 1000  

#設(shè)置進(jìn)程文件目錄
pidfile = '/var/run/gunicorn.pid'

#進(jìn)程名
proc_name = 'gunicorn_process'

#設(shè)置訪問日志和錯(cuò)誤信息日志路徑
accesslog = "./Log/access.log"
errorlog = "./Log/error.log"
# 當(dāng)想關(guān)閉日志時(shí)可以設(shè)置
# accesslog = '/dev/null'  # 禁用日志
# errorlog = '/dev/null'  # 禁用日志

# 日志級(jí)別,這個(gè)日志級(jí)別指的是錯(cuò)誤日志的級(jí)別,而訪問日志的級(jí)別無法設(shè)置,
loglevel = "error"

  #- debug: 最詳細(xì)的日志級(jí)別,通常用于調(diào)試目的。
  #- info(默認(rèn)值): 提供一般的信息日志,適用于大多數(shù)情況。
  #- warning: 輸出警告級(jí)別的日志消息,表示可能存在潛在問題。
  #- error: 輸出錯(cuò)誤級(jí)別的日志消息,表示發(fā)生了一些錯(cuò)誤,但 Gunicorn 可以繼續(xù)運(yùn)行。
  #- critical: 輸出嚴(yán)重錯(cuò)誤級(jí)別的日志消息,表示發(fā)生了嚴(yán)重問題,Gunicorn 無法繼續(xù)運(yùn)行。

# 設(shè)置gunicorn訪問日志格式,錯(cuò)誤日志無法設(shè)置
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'  

# INT:默認(rèn)情況下,這個(gè)值為30,在超時(shí)(從接收到重啟信號(hào)開始)之后仍然活著的工作將被強(qiáng)行殺死;一般使用默認(rèn)
graceful_timeout = 60

# int:未決連接的最大數(shù)量,即等待服務(wù)的客戶的數(shù)量。默認(rèn)2048個(gè),一般不修改;
backlog = 2048

# 超過這么多秒后工作將被殺掉,并重新啟動(dòng)。一般設(shè)定為30秒;
timeout = 300

# INT:在keep-alive連接上等待請(qǐng)求的秒數(shù),默認(rèn)情況下值為2。一般設(shè)定在1~5秒之間。
keepalive = 5 

# reload = True  # 默認(rèn)為False。此設(shè)置用于開發(fā),每當(dāng)應(yīng)用程序發(fā)生更改時(shí),都會(huì)導(dǎo)致工作重新啟動(dòng)。

# 設(shè)置這個(gè)值為true 才會(huì)把打印信息記錄到錯(cuò)誤日志里,將stdout / stderr重定向到errorlog中的指定文件
capture_output = False 

# INT:HTTP請(qǐng)求頭的行數(shù)的最大大小,此參數(shù)用于限制HTTP請(qǐng)求行的允許大小,默認(rèn)情況下,這個(gè)值為4094。值是0~8190的數(shù)字
limit_request_line = 5120

# 限制HTTP請(qǐng)求中請(qǐng)求頭字段的數(shù)量。此字段用于限制請(qǐng)求頭字段的數(shù)量以防止DDOS攻擊,與limit-request-field-size一起使用可以提高安全性。默認(rèn)情況下,這個(gè)值為100,這個(gè)值不能超過32768
limit_request_fields = 101

# 限制HTTP請(qǐng)求中請(qǐng)求頭的大小,默認(rèn)情況下這個(gè)值為8190。值是一個(gè)整數(shù)或者0,當(dāng)該值為0時(shí),表示將對(duì)請(qǐng)求頭大小不做限制
limit_request_field_size = 0

# 設(shè)置gunicorn使用的python虛擬環(huán)境
# pythonpath='/home/your_path/venv/bin/python3'
# 環(huán)境變量
# raw_env = 'APE_API_ENV=DEV'

服務(wù)啟動(dòng)、重啟、關(guān)閉

啟動(dòng)

  • 配置文件啟動(dòng)命名
gunicorn -c gunicorn.py GunicornRun:app
  • 查看服務(wù)
pstree -ap | grep gunicorn # 以樹結(jié)構(gòu)的形式

  • 或者lsof -i:端口號(hào)查看

  • ps -ef | grep gunicorn查看

  • 或直接去配置好的進(jìn)程文件中查看主進(jìn)程號(hào)

重啟

kill -HUP 主進(jìn)程號(hào)

關(guān)閉

kill -9 主進(jìn)程號(hào) # 如果不能完全刪除,重復(fù)刪除所有的進(jìn)程,也可以配置sh腳本來執(zhí)行一次全部刪除

一次性關(guān)閉所有的gunicorn進(jìn)程,建立.sh文件,內(nèi)容如下:

for i in `ps -ef | grep gunicorn |awk '{print $2}'`;do kill -9 $i;done

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論