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!了

相关文章
相关标签/搜索