【Gunicorn】gunicorn配置文件详解
生活随笔
收集整理的這篇文章主要介紹了
【Gunicorn】gunicorn配置文件详解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
python常見(jiàn)的web部署搭配nginx+gunicorn,下面記錄一下gunicorn的配置使用。
安裝gunicorn
pip install gunicorn gunicorn -h # 查看使用的命令gunicorn啟動(dòng)一個(gè)flask的應(yīng)用程序
# app.py from flask import Flask def create_app(): app = Flask(__name__) return app app = create_app() def index(): return 'hello world!' if __name__ == '__main__': app.run()- 在flask的項(xiàng)目的目錄下啟動(dòng)
gunicorn的參數(shù)詳解
-c CONFIG : CONFIG,配置文件的路徑,通過(guò)配置文件啟動(dòng);生產(chǎn)環(huán)境使用; -b ADDRESS : ADDRESS,ip加端口,綁定運(yùn)行的主機(jī); -w INT, --workers INT:用于處理工作進(jìn)程的數(shù)量,為正整數(shù),默認(rèn)為1; -k STRTING, --worker-class STRTING:要使用的工作模式,默認(rèn)為sync異步,可以下載eventlet和gevent并指定 --threads INT:處理請(qǐng)求的工作線程數(shù),使用指定數(shù)量的線程運(yùn)行每個(gè)worker。為正整數(shù),默認(rèn)為1。 --worker-connections INT:最大客戶端并發(fā)數(shù)量,默認(rèn)情況下這個(gè)值為1000。 --backlog int:未決連接的最大數(shù)量,即等待服務(wù)的客戶的數(shù)量。默認(rèn)2048個(gè),一般不修改; -p FILE, --pid FILE:設(shè)置pid文件的文件名,如果不設(shè)置將不會(huì)創(chuàng)建pid文件 --access-logfile FILE : 要寫(xiě)入的訪問(wèn)日志目錄 --access-logformat STRING:要寫(xiě)入的訪問(wèn)日志格式 --error-logfile FILE, --log-file FILE : 要寫(xiě)入錯(cuò)誤日志的文件目錄。 --log-level LEVEL : 錯(cuò)誤日志輸出等級(jí)。 --limit-request-line INT : HTTP請(qǐng)求頭的行數(shù)的最大大小,此參數(shù)用于限制HTTP請(qǐng)求行的允許大小,默認(rèn)情況下,這個(gè)值為4094。值是0~8190的數(shù)字。 --limit-request-fields INT : 限制HTTP請(qǐng)求中請(qǐng)求頭字段的數(shù)量。此字段用于限制請(qǐng)求頭字段的數(shù)量以防止DDOS攻擊,默認(rèn)情況下,這個(gè)值為100,這個(gè)值不能超過(guò)32768 --limit-request-field-size INT : 限制HTTP請(qǐng)求中請(qǐng)求頭的大小,默認(rèn)情況下這個(gè)值為8190字節(jié)。值是一個(gè)整數(shù)或者0,當(dāng)該值為0時(shí),表示將對(duì)請(qǐng)求頭大小不做限制 -t INT, --timeout INT:超過(guò)這么多秒后工作將被殺掉,并重新啟動(dòng)。一般設(shè)定為30秒; --daemon: 是否以守護(hù)進(jìn)程啟動(dòng),默認(rèn)false; --chdir: 在加載應(yīng)用程序之前切換目錄; --graceful-timeout INT:默認(rèn)情況下,這個(gè)值為30,在超時(shí)(從接收到重啟信號(hào)開(kāi)始)之后仍然活著的工作將被強(qiáng)行殺死;一般使用默認(rèn); --keep-alive INT:在keep-alive連接上等待請(qǐng)求的秒數(shù),默認(rèn)情況下值為2。一般設(shè)定在1~5秒之間。 --reload:默認(rèn)為False。此設(shè)置用于開(kāi)發(fā),每當(dāng)應(yīng)用程序發(fā)生更改時(shí),都會(huì)導(dǎo)致工作重新啟動(dòng)。 --spew:打印服務(wù)器執(zhí)行過(guò)的每一條語(yǔ)句,默認(rèn)False。此選擇為原子性的,即要么全部打印,要么全部不打印; --check-config :顯示現(xiàn)在的配置,默認(rèn)值為False,即顯示。 -e ENV, --env ENV: 設(shè)置環(huán)境變量;以配置文件的方式啟動(dòng)
# gunicorn.conf # 并行工作進(jìn)程數(shù) workers = 4 # 指定每個(gè)工作者的線程數(shù) threads = 2 # 監(jiān)聽(tīng)內(nèi)網(wǎng)端口5000 bind = '127.0.0.1:5000' # 設(shè)置守護(hù)進(jìn)程,將進(jìn)程交給supervisor管理 daemon = 'false' # 工作模式協(xié)程 worker_class = 'gevent' # 設(shè)置最大并發(fā)量 worker_connections = 2000 # 設(shè)置進(jìn)程文件目錄 pidfile = '/var/run/gunicorn.pid' # 設(shè)置訪問(wèn)日志和錯(cuò)誤信息日志路徑 accesslog = '/var/log/gunicorn_acess.log' errorlog = '/var/log/gunicorn_error.log' # 設(shè)置日志記錄水平 loglevel = 'warning'- 啟動(dòng)unicorn
注意:
由于windows平臺(tái)不支持gunicorn,gunicorn安裝成功后,啟動(dòng)會(huì)出現(xiàn)
‘ImportError: No module named _curses / fcntl’錯(cuò)誤;需要下載fcntl.py文件;
參考文章:
https://blog.csdn.net/y472360651/article/details/78538188
總結(jié)
以上是生活随笔為你收集整理的【Gunicorn】gunicorn配置文件详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python文件操作中的a,a+,w,w
- 下一篇: 【Flask】在g对象中存放List,实