基于centos-7.3系统(阿里云实例),使用 Gunicorn + Nginx + flask 进行布署
nginx会用到80端口,gunicorn会用到5000端口,在安全组中开放对应端口
一、安装环境
安装python3参考如下链接
https://blog.csdn.net/qq_41980405/article/details/104681245
建议不要删除python2,否则影响yum的使用。
修改yum配置
因为yum只支持python2,我们为python3建立软链接后直接使用yum install会报错,需要修改配置文件指定路径。
vi /usr/bin/yum
#将首行 #! /usr/bin/python修改为#! /usr/bin/python2.7
vi /usr/libexec/urlgrabber-ext-down
#将首行 #! /usr/bin/python 修改为#! /usr/bin/python2.7
至此,python3和yum都可正常使用。
pip3 install flask
pip3 install gunicorn
在一个文件夹内写了个入门程序 app.py
mkdir test
cd test
vim app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "<h1>Hello flask<h1>"
在test文件夹内测试gunicorn
gunicorn -w 4 -b 127.0.0.1:5000 app:app
二、安装nginx
添加 Nginx 源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装 Nginx
yum install -y nginx
启动 Nginx
systemctl start nginx.service
设置开机自启 Nginx
systemctl enable nginx.service
修改配置文件
vim /etc/nginx/conf.d/default.conf
具体内容如下(包括如下内容即可)
server {
listen 80;
server_name #阿里云主机ip;
location / {
proxy_pass http://127.0.0.1:5000
}
}
重启nginx
service nginx restart
nginx -s reload
自定义的配置文件放在/etc/nginx/conf.d
项目文件存放在/usr/share/nginx/html/
日志文件存放在/var/log/nginx/
还有一些其他的安装文件都在/etc/nginx
三、运行
在test文件夹内运行
gunicorn -w 4 -b 127.0.0.1:5000 app:app
在浏览器输入http://阿里云主机ip:80即可成功访问
进阶
实现数据展示
阿里云服务器中安装配置MYSQL数据库完整教程
参考如下链接
https://blog.csdn.net/qq_45441466/article/details/109670194
创建数据表如下图所示
创建flask文件夹,里面放入工程文件
在flask文件夹内运行gunicorn
gunicorn -w 4 -b 127.0.0.1:5000 app:app
在浏览器输入http://阿里云主机ip:80即可成功访问
如何优雅的退出/关闭/重启gunicorn进程
参考如下链接
https://cloud.tencent.com/developer/article/1493641