为了账号安全,请及时绑定邮箱和手机立即绑定

Python日记——nginx+Gunicorn部署你的Flask项目

标签:
Python

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

python 文件名.py

这样启动小脚本

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

首先安装gunicorn

pip install gunicorn

然后在入口文件的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()

然后命令行启动gunicorn

最简单的启动方式是

gunicorn 入口文件名:app

默认是监听127.0.0.1:8000

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

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

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

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

注意:如果是想通过外网访问的话就要把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!了



作者:饥渴计科极客杰铿
链接:https://www.jianshu.com/p/7ce34414963e


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消