sudo apt-get install python-pip
下面这个博客详细讲述了将一个API服务部署到阿里云服务器的过程
API服务器架设笔记(flask+nginx+uwsig)
一、下面是部署海外投放监测链接服务的流程:
1、申请新服务器后,安装python、pip包:
安装python: 略
安装pip:sudo apt-get install python-pip
查看python版本:python -version
查看一下Python可执行文件的位置:which python (一般为:/usr/bin/python)
查看本地安装了几个python: 先:cd /usr/bin 然后:ll pytho* / ls -li
pytho*
2、配置项目:把代码从gitlab拉倒服务器
先把服务器的密钥存到gitlab上,再拉代码到服务器
先查看用户主目录是否有.ssh
目录,如果没有:
ssh-keygen -t rsa -C "wanghailin@huixuanjiasu.com"一路回车,就会创建.ssh
目录
然后把.ssh
目录把id_rsa.pub文件中的密钥添加到gitlab上
3、安装虚拟环境:
安装virtualenv: pip install virtualenv
在项目目录下安装虚拟环境: virtualenv venv
安装指定python版本的虚拟环境:virtualenv
-p PYTHON_EXE, --python=PYTHON_EXE 环境名称
eg:virtualenv -p /usr/bin/python2.6 ENV
virtualenv --python=3.7 venv
激活虚拟环境:
source venv/bin/activate
退出虚拟环境:deactivate
删除虚拟环境:rm -rf venv
4、安装依赖包:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple (清华镜像)
如果安装源没有对应的版本,还需要修改依赖的版本号
安装flask_mongoengine:
pip install rednose
pip install nose
pip install coverage
pip install flask_mongoengine
5、配置Nginx(运维操作,待学习)
6、配置supervisrod(运维操作,待学习)
7、添加我们要管理的进程的配置文件:一般都写到supervisord.conf 文件下
vim写入文件的时候报错:Can't open file for writing Press ENTER or type command to continue。报错原因:没有权限 解决方法:命令前加sudo 继续报错:Sorry, user op is not allowed to execute '/usr/bin/touch ad_monitor_oversea.conf' as root on toufang-oversea-01. 报错原因:还是没有权限 解决方法:联系运维加权限
写入supervisrod配置文件后,需要确认日志目录已经创建,没有需要手动创建,否则报错。
# 停止某一个进程,program_name 为 [program:x] 里的 x
supervisorctl stop program_name
# 启动某个进程
supervisorctl start program_name
# 重启某个进程
supervisorctl restart program_name
# 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
supervisorctl stop groupworker:
# 结束 groupworker:name1 这个进程 (start,restart 同理)
supervisorctl stop groupworker:name1
# 停止全部进程,注:start、restart、stop 都不会载入最新的配置文件
supervisorctl stop all
# 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl reload
# 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
supervisorctl update
切记:后续更新supervisrod配置文件后,需要update / reload,restart只能重新,不能更新。
8、测试监测链接是否能接收,http、 https 2个都要测试
二、celery的supervisor的部署
1、先把启动celery worker的进程配置文件更新好
2、把celery新应用的代码pull 到服务器上
3、supervisorctl reload:载入最新的配置文件