环境
CentOS 6/7x64
Python:2.7.6
Etcd:3.2.18
Confd:0.16.0
Nginx:1.12.1
效果演示
一
拓扑图:
二
涉及软件
etcd:分布式 KV 存储系统,一般用于共享配置和服务注册与发现。是 CoreOS 公司发起的一个开源项目。 ETCD 存储格式类似于文件系统,以根"/"开始下面一级级目录,最后一个是 Key,一个 key 对应一个 Value。
etcd 集群:使用 Raft 协议保证每个节点数据一致,由多个节点对外提供服务。这里只用单台。
confd:管理本地应用配置文件,使用 etcd 或 consul 存储的数据渲染模板,还支持 redis、zookeeper 等。confd 有一个 watch 功能,通过 HTTP API 定期监测对应的 etcd 中目录变化,获取最新的 Value,然后渲染模板
Nginx:Nginx 是一款轻量级的 Web 服务器/反向代理服务器以及电子邮件代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师l gor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler 使用。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好。
三
软件部署
环境说明:建议使用 Cento7.X X64
1)安装 etcd (这里安装的单机,集群环境根据自己的需求选取)
2)安装 nginx
3)安装 confd
下载地址 https://github.com/kelseyhightower/confd/releases
下载完毕丢到系统里面
# cp confd /usr/bin/confd
# which confd
/usr/bin/confd
4)创建配置文件目录
5)创建 confd 配置文件
6)创建 confd 模板
7)启动 confd 并设置开机启动
开机启动脚本会随文档附带
拷贝至/etc/init.d/confd ,只需要更改 etcd 的连接地址即可
#/etc/init.d/confd start && chkconfig --add confd && chkconfig confd on
四
配置平台部署
1) Github 克隆平台代码安装平台依赖
2)创建数据库并将表刷入数据库
3)创建超级管理员账号
# python manage.py createsuperuser
4)运行平台
# python manage.py runserver 0:8000
访问地址就是 http://ip:8000 账号密码就是上一步创建的超级管理员账号密码
5)登录平台为 nginx 创建 key/value
例子: Shopping 平台为例
项目创建:
1.创建商城项目 /Shopping
2.创建商城项目里面的 /Shopping/nginx nginx 服务
3.创建 nginx 集群目录 /Shopping/nginx/cluster1
4.给我们的商城 nginx 集群1项目创建配置文件
5.域名 和 节点名称可能是多个,这里我们需要创建目录 /Shopping/nginx/cluster1/server_name 和 /Shopping/nginx/cluster1/upstream
etcd 里面存储的值
配置创建:
1.反向代理 /Shopping/nginx/cluster1/proxy_name
2.绑定一个域名 /Shopping/nginx/cluster1/server_name/1
3.创建一个集群节点 /Shopping/nginx/cluster1/upstream/web1
etcd 里面存储的值
生成的配置文件
通过 hosts 文件我们可以查看节点状态(虽然这个节点不是 up 状态但是由此可见,我们可以动态添加节点)
读而思51Reboot最新课程资讯
第 19 期Python实战班正在火热招生中
第 8 期自动化运维班正在招生中
详情扫码咨询
领取专属 10元无门槛券
私享最新 技术干货