python之gunicorn的配置

來源:互聯網
上載者:User

標籤:route   eve   pidfile   進程   res   開始   ssl   查看   format   

python常見的web部署搭配nginx+gunicorn,下面記錄一下gunicorn的配置使用。

安裝gunicorn
pip install gunicorngunicorn -h  # 查看使用的命令
gunicorn啟動一個flask的應用程式
# app.pyfrom flask import Flask    def create_app():      app = Flask(__name__)      return app  app = create_app()    @app.route(‘/‘)  def index():      return ‘hello world!‘ if __name__ == ‘__main__‘:      app.run()   
  • 在flask的項目的目錄下啟動
# 第一個app指的是app.py檔案,第二個指的是flask應用的名字;gunicorn -w 4 -b 0.0.0.0:8000 app:app
gunicorn的參數詳解
-c CONFIG    : CONFIG,設定檔的路徑,通過設定檔啟動;生產環境使用;-b ADDRESS   : ADDRESS,ip加連接埠,綁定啟動並執行主機;-w INT, --workers INT:用於處理背景工作處理序的數量,為正整數,預設為1;-k STRTING, --worker-class STRTING:要使用的工作模式,預設為sync非同步,可以下載eventlet和gevent並指定--threads INT:處理請求的背景工作執行緒數,使用指定數量的線程運行每個worker。為正整數,預設為1。--worker-connections INT:最大用戶端並發數量,預設情況下這個值為1000。--backlog int:未決串連的最大數量,即等待服務的客戶的數量。預設2048個,一般不修改;-p FILE, --pid FILE:設定pid檔案的檔案名稱,如果不設定將不會建立pid檔案--access-logfile FILE   :  要寫入的訪問日誌目錄--access-logformat STRING:要寫入的訪問日誌格式--error-logfile FILE, --log-file FILE  :  要寫入錯誤記錄檔的檔案目錄。--log-level LEVEL   :   錯誤記錄檔輸出等級。--limit-request-line INT   :  HTTP要求標頭的行數的最大大小,此參數用於限制HTTP請求行的允許大小,預設情況下,這個值為4094。值是0~8190的數字。--limit-request-fields INT   :  限制HTTP請求中要求標頭欄位的數量。此欄位用於限制要求標頭欄位的數量以防止DDOS攻擊,預設情況下,這個值為100,這個值不能超過32768--limit-request-field-size INT  :  限制HTTP請求中要求標頭的大小,預設情況下這個值為8190位元組。值是一個整數或者0,當該值為0時,表示將對要求標頭大小不做限制-t INT, --timeout INT:超過這麼多秒後工作將被殺掉,並重新啟動。一般設定為30秒;--daemon: 是否以守護進程啟動,預設false;--chdir: 在載入應用程式之前切換目錄;--graceful-timeout INT:預設情況下,這個值為30,在逾時(從接收到重啟訊號開始)之後仍然活著的工作將被強行殺死;一般使用預設;--keep-alive INT:在keep-alive串連上等待請求的秒數,預設情況下值為2。一般設定在1~5秒之間。--reload:預設為False。此設定用於開發,每當應用程式發生更改時,都會導致工作重新啟動。--spew:列印伺服器執行過的每一條語句,預設False。此選擇為原子性的,即要麼全部列印,要麼全部不列印;--check-config   :顯示現在的配置,預設值為False,即顯示。-e ENV, --env ENV: 設定環境變數;
以設定檔的方式啟動
# gunicorn.conf# 並行背景工作處理序數workers = 4# 指定每個工作者的線程數threads = 2# 監聽內網連接埠5000bind = ‘127.0.0.1:5000‘# 設定守護進程,將進程交給supervisor管理daemon = ‘false‘# 工作模式協程worker_class = ‘gevent‘# 設定最大並發量worker_connections = 2000# 設定進程檔案目錄pidfile = ‘/var/run/gunicorn.pid‘# 設定訪問日誌和錯誤資訊日誌路徑accesslog = ‘/var/log/gunicorn_acess.log‘errorlog = ‘/var/log/gunicorn_error.log‘# 設定日誌記錄水平loglevel = ‘warning‘
  • 啟動unicorn
gunicorn -c gunicorn.conf app:app

注意:

由於windows平台不支援gunicorn,gunicorn安裝成功後,啟動會出現

‘ImportError: No module named _curses / fcntl’錯誤;需要下載fcntl.py檔案;

  • 參考文章:

  • 78538188

python之gunicorn的配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.