1. 程式人生 > >使用flask開發RESTful架構的api伺服器端(5)–部署flask應用到nginx

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

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

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

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

安裝gunicorn

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

1 pip install gunicorn

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

1 gunicorn-b127.0.0.1:12345run:app

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

1 gunicorn-kgevent-b127.0.0.1:12345run:app

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

QQ圖片20150308191530

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

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

1234567891011 server{......location/{proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header Host$http_host;proxy_redirect off;proxy_pass http://127.0.0.1:12345;}......}

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