Python日記——nginx+Gunicorn部署你的Flask項目

轉自:http://blog.csdn.net/qq_32198277/article/details/52432890python

 

你們在學習Python的時候經常都是輸入nginx

1 python 文件名.py

 

 

這樣啓動小腳本flask

但實際應用中每每沒有那麼簡單,由於一般都要多線程處理併發,處理頭部,這時就須要nginx和Gunicorn了瀏覽器

首先安裝gunicorn

1 pip install gunicorn

 

 

而後在入口文件的app.run()加上

1 from werkzeug.contrib.fixers import ProxyFix
2 app.wsgi_app = ProxyFix(app.wsgi_app)

 

 

多線程

 1 from flask import Flask
 2 
 3 app = Flask(__name__)
 4 
 5 
 6 @app.route('/')
 7 def hello_world():
 8     return 'Hello World!'
 9 
10 if __name__ == '__main__':
11     from werkzeug.contrib.fixers import ProxyFix
12     app.wsgi_app = ProxyFix(app.wsgi_app)
13     app.run()

 

而後命令行啓動gunicorn

最簡單的啓動方式是併發

1 gunicorn 入口文件名:app

 

默認是監聽127.0.0.1:8000app

若是是要處理高併發則要開多個進程和修改監聽端口的畫高併發

1  gunicorn -w 4 -b 127.0.0.1:8000 入口文件名:app

 

這樣就能夠啓動4個進程同時處理HTTP請求,提升系統的使用效率及性能。 
還能夠把端口8000改成其餘性能

這時你能夠在本機的瀏覽器上訪問127.0.0.1:8000,瀏覽器上就會出現Hello World!學習

注意:若是是想經過外網訪問的話就要把ip改成內網的ip

以後配置nginx

首先先備份配置 
輸入命令

1 sudo cp /etc/nginx/sites-available/default default.bak

修改配置

輸入命令

1 sudo nano /etc/nginx/sites-available/default

 

把配置改成

 1 server {
 2     listen 80;
 3     server_name example.org; # 這是HOST機器的外部域名,用地址也行
 4 
 5     location / {
 6         proxy_pass http://127.0.0.1:8000; # 這裏是指向 gunicorn host 的服務地址
 7         proxy_set_header Host $host;
 8         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 9     }
10 
11   }

 

這樣啓動以後80端口就能夠轉發到8000端口了

檢查配置

輸入命令

1 sudo nginx -t

若出現

1 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2 nginx: configuration file /etc/nginx/nginx.conf test is successful

 

則配置成功

重啓nginx 
輸入命令

1 sudo service nginx restart

關閉nginx

1 sudo service nginx stop

 

在已經運行了Gunicorn的前提下,在瀏覽器訪問127.0.0.1就會出現Hello World!了

相關文章
相關標籤/搜索