python web生产环境_生产环境利用gunicorn部署Flask的python web服务

今天登陆服务器发现python占用了相当高比例的cpu,然后发现是本站点使用flask做的的一些web小工具带来的,因此总算明白了启动flask的时候为什么提示不要在生产环境直接部署。0-0。因此决定部署好flask的生产环境,由于大部分人都对gunicorn评价很好,容易配置,因此本文也使用gunicorn来部署flask的生产环境了。

1.安装gunicorn

直接yum安装就可以了。

pip install gunicorn

2.gunicorn命令启动flask程序

先告知gunicorn后台启动命令

gunicorn -w 4 flaskr:application --bind=127.0.0.1:5000 --daemon

-w 4:是指预定义的工作进程数为4

-bind=:制定工作端口,这里选择与dev模式一样的端口5000

-deamon:后台运行

> “flaskr:application”:这里flaskr是文件名称,application为应用名称

当然gunicorn还有很多的配置,由于我么你是用nginx反代,这些配置就够用了。

3.flask样例

再多的说明都替代不了一个实例来的给力。

文件名flaskr.py

from flask import Flask,redirect

from flask import request

from flask import render_template

def create_app(test_config=None):

# create and configure the app

app = Flask(__name__, instance_relative_config=True)

app.config.from_mapping(

SECRET_KEY='production',

DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),

)

if test_config is None:

# load the instance config, if it exists, when not testing

app.config.from_pyfile('config.py', silent=True)

else:

# load the test config if passed in

app.config.from_mapping(test_config)

# ensure the instance folder exists

try:

os.makedirs(app.instance_path)

except OSError:

pass

# a simple page that says hello

@app.route('/')

def hello_world():

return 'Hello, World!'

return app

application = create_app()

if __name__ == '__main__':

application.run()

直接运行上面的gunicorn命令后,使用

wget 127.0.0.1:5000

如果返回了hello,world的话就说明配置成功了。

4.nginx反向代理本地的flask web程序

nginx的配置文件中添加代理本地flask程序的端口就行了

server

{

listen 80;

server_name 127.0.0.1;#服务器公网ip或者域名

root /www/wwwroot/www.bobobk.com;

location / {

proxy_pass http://localhost:5000;

proxy_redirect off;

proxy_set_header Host $host;}

}

到这里就完成了使用gunicorn在生产环境配置flask的全过程了,现在看看资源占用情况。

top

可以看到在使用了生产环境配置后,flask的cpu占用率迅速下降,对于低配置的云服务器来说很重要,现在我的1g内存的小鸡终于又可以顺畅地运行起来了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值