1、安装Python3
1)安装python3必要的库
yum -y install zlib* gcc-c++
2)创建安装目录
mkdir /usr/local/python3
3) 进入安装目录,下载python安装包,解压包
cd /usr/local/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
tar -xzvf Python-3.7.9.tgz
4) 进入安装包,指定安装目录,编译&安装,创建pytho3软连接
cd Python-3.7.9
# 如果此命令报错,则可能是没有安装gcc库,安装即可
# 安装命令 yum install gcc-c++
# configure: error: no acceptable C compiler found in $PATH
./configure --prefix /usr/local/python3/
make & make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
2、安装包管理工具pip3
1)创建文件夹并进入
mkdir /usr/local/pip3
cd /usr/local/pip3
2)下载源代码,解压文件,进入文件
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1.tar.gz
cd pip-9.0.1
3)使用python3安装,创建pip3软链接
python3 setup.py install
#这一步是什么意思呢
#python setup.py install包括两步:python setup.py build, python setup.py install,这两步,可分开执行, 也可只执行python setup.py install, 因为python setup.py install总是会先build后install.
#python setup.py build 是python编译这个module的过程, 这个过程比较复杂,最后会生成build文件夹。除去build过程后的install过程,就是复制build/lib文件到用户指定的lib库。
ln -s /usr/local/python3/bin/pip /usr/bin/pip3
3、安装服务器中间件gunicorn
1) 安装WSGI服务器gunicorn
pip install gunicorn
2) 全局配置
ln -s /usr/local/python/bin/gunicorn /usr/bin/gunicorn
3) 测试是否安装成功
gunicorn -v
4、部署接口应用
1)准备接口服务程序app.py
2)安装依赖包flask
pip install flask
3)部署接口程序
http://127.0.0.1:5000
3)-1简单部署
gunicorn可以配置一些额外参数,格式如下:
gunicorn -w 进程数量 -b 监听地址:监听端口 运行文件名称:Flask程序实例名
例如:
gunicorn -w 4 -b 0.0.0.0:8080 app:app -D
-D
表示将gunicorn置于后台运行
3)-2借助配置文件部署
执行pip install gevent
安装依赖包。
gunicorn可以通过执行配置文件来完成启动,配置文件如下
# gun.py
import logging
import logging.handlers
import os
import multiprocessing
import gevent.monkey
gevent.monkey.patch_all()
bind = '0.0.0.0:8080' # 绑定的ip已经端口号
chdir = '/home/flaskProject' # gunicorn要切换到的目的工作目录
timeout = 60 # 超时
worker_class = 'gevent' # 使用gevent模式,还可以使用sync 模式,默认的是sync模式
workers = multiprocessing.cpu_count() * 2 + 1 # 启动的进程数
loglevel = "info" # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"' # 设置gunicorn访问日志格式,错误日志无法设置
pidfile = "gunicorn.pid"
accesslog = "access.log"
errorlog = "error.log"
daemon = True # 是否后台运行
执行gunicorn -c gun.py app:app
启动应用程序,
启动后项目的目录下会生成access.log
,error.log
和gunicorn.pid
三个文件,gunicorn.pid
中保存了gunicorn的主进程PID号,可以通过cat gunicorn.pid
查看,当想要停止gunicorn时,直接kill 进程号
即可杀死所有gunicorn进程。