本文作為學習記錄,將本人覺得有用的文章和方法進行記錄,請訪問 原文
1、首先安裝Gunicorn
pip install gunicorn
複製程式碼
2、在入口檔案的app.run()加上以下內容
from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
複製程式碼
例:
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()
複製程式碼
3、啟動Gunicorn
最簡單的方式為
gunicorn 入口檔名:app
複製程式碼
預設是監聽127.0.0.1:8000
如果是要處理高併發則要開多個程式和修改監聽埠的畫
gunicorn -w 4 -b 127.0.0.1:8000 入口檔名:app
複製程式碼
這樣就可以啟動4個程式同時處理HTTP請求,提高系統的使用效率及效能。 還可以把埠8000改為其他
而在實際應用中,應使用後臺執行的方式啟動服務
nohup 啟動服務的命令 &
複製程式碼
即
nohup gunicorn -w 4 -b 127.0.0.1:8000 入口檔名:app &
複製程式碼
這時你可以在本機的瀏覽器上訪問127.0.0.1:8000,瀏覽器上就會出現Hello World!
注意:如果是想通過外網訪問的話就要把ip改為內網的ip
4、配置nginx
配置改為
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埠了
5、檢查配置
nginx -t
複製程式碼
若出現一下內容,則表示配置成功
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
複製程式碼
6、更新nginx配置
nginx -s reload
複製程式碼
在已經執行了Gunicorn的前提下,在瀏覽器訪問127.0.0.1就會出現Hello World!了
7、重啟Gunicorn
輸入命令
pstree -ap|grep gunicorn
複製程式碼
出現以上內容,可以看到,其中30693為主程式號,使用以下命令,重啟Gunicorn
kill -HUP 30693
複製程式碼