nginx+Gunicorn部署你的Flask項目

https://www.cnblogs.com/minsons/articles/8191219.html

你們在學習python的時候經常都是輸入javascript

python 文件名.py

這樣啓動小腳本html

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

首先安裝gunicorn

pip install gunicorn

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

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

python

複製代碼
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': from werkzeug.contrib.fixers import ProxyFix app.wsgi_app = ProxyFix(app.wsgi_app) app.run()
複製代碼

而後命令行啓動gunicorn

最簡單的啓動方式是nginx

gunicorn 入口文件名:app

默認是監聽127.0.0.1:8000flask

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

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

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

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

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

以後配置nginx

首先先備份配置 
輸入命令

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

修改配置

輸入命令

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

把配置改成

複製代碼
server {
    listen 80; server_name example.org; # 這是HOST機器的外部域名,用地址也行 location / { proxy_pass http://127.0.0.1:8000; # 這裏是指向 gunicorn host 的服務地址  proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
複製代碼

 

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

檢查配置

輸入命令

nginx -t

若出現

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

則配置成功

重啓nginx 
輸入命令

sudo service nginx restart

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

相關文章
相關標籤/搜索