跳转至
阅读量:

Centos7下部署Flask应用

一、安装 Python3

yum install python3 -y

# 验证Python安装是否完成
python3 -V
pip3 -V

# 更新pip
pip3 install --upgrade pip

二、安装uWSGI

安装依赖:

yum install python3-devel

如果出现下面的错误:

Transaction check error:
  file /etc/rpm/macros.python from install of python-rpm-macros-3-34.el7.noarch conflicts with file from package python-devel-2.7.5-80.el7_6.x86_64

Error Summary

则执行下面的命令后再次进行安装:

yum update python-devel

安装uWSGI:

pip3 install uwsgi

# 验证安装uwsgi是否完成
uwsgi --version

三、安装nginx

yum install nginx -y

启动 nginx:

systemctl start nginx

通过 IP 直接访问服务器,访问成功说明 nginx 开启成功:

image-20210706142809083

常用命令:

# 设置nginx开机自启动
systemctl enable nginx
# 开启nginx
systemctl start nginx
# 查看nginx运行状态
systemctl status nginx
# 关闭nginx
systemctl stop nginx
# 重启nginx
systemctl restart nginx
# 重载配置文件
systemctl reload nginx

四、创建flask应用

首先安装flask库:

pip3 install flask

创建 flask 应用:

# /var/www/app.py

from flask import Flask
app = Flask(__name__)

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

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

使用 Python 启动 flask 应用:

python3 app.py

运行成功:

* Serving Flask app 'app' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

五、使用uwsgi启动flask

编写配置文件:

# /var/www/conf/config.ini

[uwsgi]

# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8000

# python 调用的模块
module = app

# python 启动程序文件
wsgi-file = /var/www/app.py

# python 程序内用以启动的 application 变量名
callable = app

# 处理器数
processes = 4

# 线程数
threads = 8

# 输出日志文件
daemonize = /var/www/log/server.log

使用 uwsgi启动flask:

uwsgi /var/www/conf/config.ini

out:
[uWSGI] getting INI configuration from conf/config.ini

启动成功!

六、使用nginx启动uwsgi

编辑 nginx.conf :

# 备份配置文件
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# 编辑配置文件
vim /etc/nginx/nginx.conf
server {
    listen 80;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
        uwsgi_param UWSGI_CHDIR /var/www;
    }
}

重启 nginx :

# 重载配置文件
systemctl reload nginx
# 重启nginx
systemctl restart nginx

直接访问服务器 IP:

image-20210706152141259

配置完成!

评论