个人玩-项目部署
个人玩-项目部署:
OS:ubuntu 16.04,服务器:Gunicorn,代理服务器:Nginx。
云服务器建议阿里云,腾讯云也挺好,试用期玩玩挺好的。也可以花几块钱开一年的。
阿里的:https://www.aliyun.com 不得不感叹一句我们的软件行业都应该向人阿里‘模仿’一下。
免费试用:[https://free.aliyun.com/] 贴心不?
然后就是创建服务器镜像,一路按提示next。注意系统是ubuntu 16,大家都说好使。
把各个选项浏览一下,进入控制台查看自己的实例。
在网络安全 —> 安全组 —> 配置安全规则,添加端口号 9091,9090.(随意了,可以看看自己的project默认号)授权对象:0.0.0.0/0
在本机进行远程登录:
(建议win10的linux 子系统,够简洁)
ssh 用户名@ip地址
相关环境安装
跟平时装Ubuntu操作系统一样。
更新软件源:sudo apt-get update
安装MySQL:
apt-get install mysql-server
apt-get install libmysqlclient-dev
安装Redis:sudo apt-get install redis-server
安装Python3 :
。。。。
MySQL 是数据保存用的,特点容量大(磁盘);Redis 是暂存数据的,特点快(内存);Python 3 大家都需要
这三个基本都需要。可以看看我的其他博客,了解下安装和配置。
环境配置:
虚拟环境:
pip install virtualenv
pip install virtualenvwrapper
配置虚拟环境:
编辑~/.bashrc 文件,使virtualenvwrapper生效:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
配置项目依赖环境:
生成依赖文件:pip freeze > requirements.txt
安装依赖包:sudo apt-get build-dep python-mysqldb
远程安装pip install -r requirements.txt
配置代理服务器进程:
具体可看其他博客文章。
采用C语言编写,实现请求的分流、转发、负载均衡。
安装:sudo apt-get install nginx
运行及停止:/etc/init.d/nginx start #启动
/etc/init.d/nginx stop #停止
配置文件/etc/nginx/sites-available/default:
这步比较重要,我得再琢磨琢磨了。
主要是设置:
upstream flask 的端口号。
location —> proxy_pass http://127.0.0.1:5000;请求转发的服务器。
Gunicorn:
一个Python WSGI的HTTP服务器,WSGI:PythonWeb服务器网关接口。
从Ruby的独角兽(Unicorn )项目移植,与各种Web框架兼容,实现非常简单,轻量级的资源消耗。
直接用命令启动,不需要编写配置文件。
安装:pip install gunicorn
查看选项: gunicorn -h
运行:
gunicorn -w 2 -b 127.0.0.1:5000 文件名(无后缀):实例对象名(app)
-w 表示进程数,-b 是端口。
上传代码:
scp -r 本地文件 用户名@IP地址:远端目录
Gunicorn-配置
配置文件路径 -c:
gunicorn -c gunicorn.conf manager:app
可连接数:
就那个最大可接受服务的客户数量。64~2048.
–backlog n,
推荐进程数:
推荐为当前CPU个数*2 + 1.
计算当前的CPU个数:
import multiprocessing
print multiprocessing.cpu_count()
工作模式 -k:
默认是异步 sync。
格式 -k STRTING
sync;eventlet:需要下载eventlet>=0.9.7;gevent:需要下载gevent>=0.13;tornado:需要下载tornado>=0.2;
gthread;gaiohttp:需要python 3.4和aiohttp>=0.21.5;
线程数:
–threads num
处理请求的线程数,指定每个进程线程的数量。
最大并发数:
–worker-connections NUM
最大客户端并发数量,默认情况下这个值为1000。gevent和eventlet工作模式会受此设置影响。
最大请求数:
–max-requests NUM
工作处理的最大请求数。worker重启失效。
设置中要了解的太多了。看另一个转载文章。
设置完了运行自己的project就OK了。
上一篇: git钩子自动更新服务器代码
下一篇: Odoo 8 安装部署(centos)