python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda

近期被交接了一些运维类的工作,正好赶上项目上生产,寻思直接在dev环境的docker里装好,cp过去改改配置就可以了,记录一下。
项目结构:flask写的服务,nginx负载均衡,gunicom配置启动服务,supervisor服务管理,anaconda环境管理,ubuntu镜像版本1604,ngin镜像版本1.15.8
项目架构搭建
docker安装ubuntu的一部分准备工作已经做完(更新系统编码,常用命令,安装个python,ananconda等),而且每个项目可能都不一样,不再写了。
一、安装supervisor(非root用户也可安装)
supervisor.conf配置示例:

首先进入docker容器
在这里插入图片描述
切换到base环境
在这里插入图片描述
安装supervisor
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第1张图片
生成默认配置文件
mkdir ~/supervisor
echo_supervisord_conf > ~/supervisor/supervisord.conf
在这里插入图片描述
修改配置文件supervisord.conf
分号;开头的都是注释不用管,
只需要修改几个地方
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第2张图片
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第3张图片在这里插入图片描述
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第4张图片
启动supervisor
在这里插入图片描述
一切正常
在这里插入图片描述
二、安装gunicom并实现supervisor对其监控
切换虚拟环境安装gunicom
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第5张图片
gunicorn还需要安装几个其他的库,分别是
pip install greenlet # 使用异步必须安装
pip install eventlet # 使用eventlet workers
pip install gevent # 使用gevent workers

编写gunicom项目启动文件
gunicom_config.py的配置项
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第6张图片
常用配置参数及说明
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第7张图片

python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第8张图片
编写supervisor的中项目启动文件
在supervisor目录下创建目录supervisor.sock并配置权限
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第9张图片
创建目录conf.d
进入目录创建配置文件Spider.conf
配置说明
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第10张图片
配置示例
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第11张图片
supervisor常用启动命令
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第12张图片
btw:gunicorn的普通启动命令
gunicorn -w 2 -b 0.0.0.0:8083 interface:app
-w:worker数量
-b:配置端口和ip
interface:app:interface.py文件内的app实例
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第13张图片
重载supervisor配置文件并启动服务
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第14张图片
两个端口已经启动成功了
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第15张图片
三、安装nginx
首先说明:为了方便nginx移植其他环境,打算直接在docker服务器拉一个nginx镜像,并把配置文件写到宿主机。
首先拉取一个镜像
sudo docker pull nginx:1.15.8
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第16张图片
这是下载好的镜像
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第17张图片
将镜像文件保存到本地
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第18张图片
重新加载本地镜像
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第19张图片
首先我们在宿主机上创建这三个目录
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第20张图片
创建一个临时容器
在这里插入图片描述
将临时容器中的配置文件复制到宿主机中
在这里插入图片描述
删除临时容器
在这里插入图片描述
创建运行nginx镜像
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第21张图片
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第22张图片
nginx常用命令
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第23张图片
四、配置负载均衡

在宿主机的~/Docker/nginx/conf下创建ai.nginx.conf
配置如下
upstream 和server是一组,可以添加多组,配置多个端口与监听的负载
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第24张图片
用docker stop containerID 和docker rm containerID 停止并删除原来的容器
将ai.nginx.conf也挂载到新容器内
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第25张图片
测试一下,8083端口监听成功
python项目服务器配置部署docker/nginx/gunicom/flask/supervisor/anaconda_第26张图片

你可能感兴趣的:(python,docker,nginx,ubuntu,flask)