linux上部署flask项目,提高并发性能(uwsgi+flask)

服务器版本:centos7

python版本:python3.6

主要功能:使用uwsgi部署flask接口,支持高并发

大致流程就是,在服务器上新建一个python虚拟环境,并下载好相关python库,使用uwsgi启动flask脚本。

首先得确保你的机器上安装了python3,centos7自带的python版本是2.7.

具体安装步骤:https://blog.csdn.net/t8116189520/article/details/81976755

uwsgi可以说事是目前部署python站点最方便的组件了,并且极大的提高了站点支持高并发访问的性能。

uwsgi是一个接口规范,简单地说,它告诉你应该实现哪些方法来在服务器和应用程序之间传递请求和响应。

用以下的简单flask模板manage.py做一个案例:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

接下来是部署的完整过程:

1.在linux服务器端搭建python虚拟环境。

# 下载虚拟环境包
pip3 install virtualenv

# 使用命令新建虚拟环境,我的目录是/opt/myproject
# 在当前目录创建一个名为venv的虚拟环境
virtualenv venv
 
# 如果指定python版本
virtualenv -p /usr/bin/python3 venv
 
# 查看当前虚拟环境的python版本
python --version
 
# 激活虚拟环境
source venv/bin/activate

# 在虚拟环境中安装flask、uwsgi库
pip install uwsgi
pip install flask

2.在venv目录下新建一个uwsgi.ini配置文件,并配置(此时已经激活虚拟环境)

# 新建文件
touch uwsgi.ini

# 写入内容
vi uwsgi.ini

配置内容:

[uwsgi]
# manage.py文件所在目录
chdir           = /opt/myproject/venv/flask-test

callable = app

# flask文件名
wsgi-file= manage.py

# 进程数
processes       = 5

# 使用5001端口
http = 0.0.0.0:5001

# 日志输出目录
daemonize = /opt/myproject/venv/flask-test/flask.log

pidfile = project-master.pid

master = true

3.启动项目

将manage.py上传到服务器,放在/opt/myproject/venv/flask-test 目录下

# 启动命令(在venv目录下)
uwsgi uwsgi.ini

# 查看进程是否启动成功
ps -ef | grep uwsgi

4.查看日志输出 (进入/opt/myproject/venv/flask-test/目录下)

命令:tailf flask.log

5.查看进程是否启动 命令:ps -ef|grep uwsgi

备注:

可能出现问题:

pip install uwsgi 之后,运行uwsgi 报错:[uwsgi: command not found]

解决方案:建立软链接 

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

备注2:

#### 启动命令:
uwsgi --ini xxx.ini
#### 重启:
uwsgi --reload xxx.pid
#### 停止:
uwsgi --stop xxx.pid

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页

打赏作者

大蛇王

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值