欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

个人玩-项目部署

程序员文章站 2022-03-04 12:41:03
...

个人玩-项目部署:

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了。

相关标签: 项目部署