nginx+Gunicorn部署Flask项目

本文介绍如何使用Gunicorn部署Flask应用,并配置Nginx实现负载均衡。包括安装Gunicorn、修改Flask应用运行配置、启动Gunicorn服务、Nginx配置及重启Gunicorn等步骤。

本文作为学习记录,将本人觉得有用的文章和方法进行记录,请访问 原文

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
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值