你們在學習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!了