个人玩-项目部署

个人玩-项目部署:

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了。在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40302130/article/details/84337402
今日推荐