使用gunicorn部署flask專案

2022-03-03 18:07:55 字數 1560 閱讀 4515

目錄web框架致力於如何生成html**,而web伺服器用於處理和響應http請求。web框架和web伺服器之間的通訊,需要一套雙方都遵守的介面協議。wsgi協議就是用來統一這兩者的介面的。

常用的wsgi容器有gunicorn和uwsgi,但gunicorn直接用命令啟動,不需要編寫配置檔案,相對uwsgi要容易很多,所以這裡我也選擇用gunicorn作為容器。

gunicorn是乙個python wsgi http server,只支援在unix系統上執行,**於ruby的unicorn專案。gunicorn使用prefork master-worker模型(在gunicorn中,master被稱為arbiter),能夠與各種wsgi web框架協作。

gunicorn安裝非常簡單,使用命令pip install gunicorn即可。一般使用它,主要是為使用其非同步的worker模型,還需要安裝對應的非同步模組。

$ pip install greenlet # 使用非同步必須安裝

$ pip install eventlet # 使用eventlet workers

$ pip install gevent # 使用gevent workers

這裡使用gunicorn來部署乙個flask專案舉例,此處flask框架的使用不過多闡述,不是本文的重點。

from flask import flask

def hello():

return "hello world!"

gunicorn通常使用的引數如下:

-c config, --config=config

# 設定配置檔案。

-b bind, --bind=bind

# 設定服務需要繫結的埠。建議使用host:port。

-w workers, --workers=workers

# 設定工作程序數。建議伺服器每乙個核心可以設定2-4個。

-k module

# 選定非同步工作方式使用的模組。

在shell中輸入你的啟動配置,比如:

這樣執行正常就可以啟動伺服器了。

linux通常會禁止繫結使用1024以下的埠,除非在root使用者許可權。很多人在使用gunicorn時試圖將其繫結到80或者443埠,發現無效。如果想繫結到這些埠,常見的有如下的幾種方法:

使用ps -ef | grep gunicorn命令找出gunicorn所有程序。

[root@vm_0_12_centos ~]# ps -ef | grep gunicorn
然後使用 kill -9 程序id 命令來殺掉程序,注意,我們找到主程序殺掉即可,子程序會隨之結束,在上例中,主程序號為23035.

[root@vm_0_12_centos ~]# kill -9 23035

[root@vm_0_12_centos ~]# ps -ef | grep gunicorn

殺掉程序後,稍等幾秒,再使用ps -ef | grep gunicorn檢視,發現gunicorn服務程序已全部殺掉。

使用gunicorn部署Flask

gunicorn是乙個python wsgi的web服務框架,只支援在unix系統上執行,於ruby的unicorn專案。gunicorn使用prefork master worker模型,能夠與各種wsgi web框架協作。gunicorn安裝非常簡單,使用命令pip install guncor...

使用gunicorn部署django專案

python mange.py runserver 0.0 0.0 8000gunicorn 綠色獨角獸 是乙個被廣泛使用的高效能的python wsgi unix http伺服器 pip install gunicorn gunicorn w 2 b 0.0.0.0 8000 project dj...

使用gunicorn部署flask專案

web框架致力於如何生成html 而web伺服器用於處理和響應http請求。web框架和web伺服器之間的通訊,需要一套雙方都遵守的介面協議。wsgi協議就是用來統一這兩者的介面的。常用的wsgi容器有gunicorn和uwsgi,但gunicorn直接用命令啟動,不需要編寫配置檔案,相對uwsgi...