python 在centos上用nginx+Gunicorn部署 flask 项目

本文介绍如何使用Gunicorn和Nginx部署Python Web应用,包括安装Gunicorn、配置Flask应用以便于代理修复、启动Gunicorn服务及配置Nginx进行反向代理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家在学习Python的时候常常都是输入

python 文件名.py
 
  • 1
  • 1

这样启动小脚本

但实际应用中往往没有那么简单,因为通常都要多线程处理并发,处理头部,这时就需要nginx和Gunicorn了

首先安装gunicorn

pip install gunicorn
 
  • 1
  • 1

然后在入口文件的app.run()加上

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

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()

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

然后命令行启动gunicorn

最简单的启动方式是

gunicorn 入口文件名:app
 
  • 1
  • 1

默认是监听127.0.0.1:8000

如果是要处理高并发则要开多个进程和修改监听端口的画

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

这样就可以启动4个进程同时处理HTTP请求,提高系统的使用效率及性能。 
还可以把端口8000改为其他

这时你可以在本机的浏览器上访问127.0.0.1:8000,浏览器上就会出现Hello World!

注意:如果是想通过外网访问的话就要把ip改为内网的ip

之后配置nginx

首先先备份配置 
输入命令

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

修改配置

输入命令

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

把配置改为

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;
    }

  }
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

这样启动之后80端口就可以转发到8000端口了

检查配置

输入命令

nginx -t
 
  • 1
  • 1

若出现

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

 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

则配置成功

重启nginx 
输入命令

sudo service nginx restart
 
  • 1
  • 1

在已经运行了Gunicorn的前提下,在浏览器访问127.0.0.1就会出现Hello World!了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值