使用flask開發RESTful架構的api伺服器端(5)–部署flask應用到nginx

發表於2016-05-05

通過前幾章的介紹,大概瞭解了怎樣利用flask框架來開發服務端後端,但flask只是一個web框架,提供使用者便捷的開發方式,它並不是一個真正的web伺服器程式,想要這個服務端應用能夠支援高併發、高效能的訪問,還是需要將flask應用部署到真正的web伺服器上,nginx就是起到這個作用的,想要將flask和nginx聯合起來,需要一個叫wsgi的中介軟體,這裡選擇gunicorn來進行這個工作,下面進行這幾個名詞的解釋;

nginx:一個高效能的http和反向代理伺服器,在高併發方面有良好的表現;

wsgi:全稱是web server gateway interface,它是伺服器程式和應用程式之間的一個約定,它規定了兩者各實現什麼功能,以便它們能夠配合使用,作為中介軟體粘合伺服器程式和應用程式;

gunicorn:一個開源的全python實現的wsgi程式,在效能和功能上的表現都很不錯,很便於開發;

安裝gunicorn

簡單的使用pip命令即可安裝了:

例如這時你的flask程式檔案為run.py,則使用gunicorn來執行flask的命令為:

其中-b為監聽的ip和埠,run為檔名,app為建立的flask物件的名稱,另外gunicorn預設使用同步阻塞的網路模型,可用通過配置來進行修改:

可以通過ps檢視gunicorn的執行情況:

QQ圖片20150308191530

gunicorn與nginx類似採用多程式模式,一個master程式和多個worker程式協同工作,可以根據自己的cpu數進行配置使用–worker選項

接下來是將gunicorn與nginx進行對接,可以使用nginx的代理功能,將http請求代理到gunicorn的監聽埠上來,在nginx的配置檔案中新增:

如此一個簡單的服務端架構就搭建好了,之後就是不斷的豐富它的內容,和優化它的效能了。

使用flask開發RESTful架構的api伺服器端(4)–flask運算元據庫

相關文章