Centos 7 Docker、docker-compose、Registrator、Consul、Consul Template和Nginx实现高可扩展的Web框架
安装所需软件
Docker
Docker-compose
配置docker-compose.yml文件内容如下:
#load balancer will automatically update the config using consul-template
lb:
image: yeasy/nginx-consul-template:latest
hostname: lb
volumes:
- /usr/soft/consul/logapi.conf:/etc/consul-templates/nginx.conf
links:
- consulserver:consul
ports:
- "80:80"
consulserver:
image: gliderlabs/consul-server:latest
hostname: consulserver
ports:
- "8300:8300"
- "8301:8301"
- "8301:8301/udp"
- "192.168.190.131:8302:8302"
- "192.168.190.131:8302:8302/udp"
- "192.168.190.131:8400:8400"
- "192.168.190.131:8500:8500"
- "53:53/udp"
- "53:53"
command: -data-dir /tmp/consul -bootstrap -advertise 192.168.190.131
registrator:
image: gliderlabs/registrator:latest
hostname: registrator
links:
- consulserver:consul
volumes:
- "/var/run/docker.sock:/tmp/docker.sock"
command: consul://consul:8500
logapi:
image: logapi-1-0-app
environment:
SERVICE_80_NAME: http
SERVICE_NAME: logapi
SERVICE_TAGS: backend
ports:
- "60000"
Nginx模板文件 /usr/soft/consul/logapi.conf内容如下:logapi名称与docker-compose.yml文件中logapi节点下的SERVICE_NAME名称相同
upstream app {
{{range service "logapi"}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1;
{{else}}server 127.0.0.1:65535; # force a 502{{end}}
}
server {
listen 80 default_server;
location / {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
转到docker-compose.yml文件所在目录
运行sudo docker-compose up
查看运行状态
防火墙开启相应端口
32860端口为logapi-1-0-app容器对应的端口号
sudo firewall-cmd --zone=public --add-port=8500/tcp --permanent
sudo firewall-cmd --zone=public --add-port=32861-33000/tcp --permanent
sudo firewall-cmd --reload
查看网站内容返回如下:
{"status":1,"message":"","data":{"hostName":"fdbd2c30b6c4","ip":["172.17.0.2","172.17.0.2","172.17.0.2"]}}
开启2个站点
sudo docker-compose scale logapi=2
再次访问站点内容
Centos 7 Docker、docker-compose、Registrator、Consul、Consul Template和Nginx实现高可扩展的Web框架的更多相关文章
- [原创]Docker学习记录: Shipyard+Swarm+Consul+Service Discover 搭建教程
网上乱七八糟的资料实在是太多了, 乱, 特别乱, 而看书呢, 我读了2本书, 一本叫做<>, 另一本叫做<< Docker进阶与实战>> 在 服务发现这块讲的又不清 ...
- 【Linux】【Services】【SaaS】Docker+kubernetes(9. 安装consul实现服务注册发现)
1. 简介 1.1. 官方网站: https://www.consul.io 1.2. Consul的功能: 服务发现:通过DNS或HTTP接口使得消费者发现服务,应用程序可以轻松找到所依赖的服务. ...
- CentOS下利用Docker部署Surging
原文:CentOS下利用Docker部署Surging 1. 安装Centos, 配置固定ip配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33`` ...
- centos 7 安装 Docker Engine-CentOS 社区版
获取Docker Engine-CentOS社区: https://docs.docker.com/install/linux/docker-ce/centos/ 1.操作系统要求 1.1 要安装 D ...
- Docker学习—Compose
前言 前面<Docker学习-DockerFile>文中介绍了dockerfile相关的语法,及使用方式:接下来了解docker三剑客之一的 Compose:接下来详细学习. 一.dock ...
- Docker之Compose服务编排
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...
- CentOS 7 安装 Docker
CentOS 7 安装 Docker 这里介绍 ContOS 7 的安装 docker V1.2+,包括阿里云加速 docker 镜像下载的设置,这对提升使用 docker 体验至关重要.其他系统安装 ...
- 在RedHat/CentOS下安装Docker(不升级内核)
由于内核版本问题,最初仅Ubuntu可以较好的支持Docker.不过,由于RedHat系列OS(REHL.CentOS)是目前主流的Linux服务器操作系统,所以令RedHat系列OS支持Docker ...
- docker入门(1) Centos 7 下docker的安装
centos 7安装docker 什么是 Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go ...
随机推荐
- 多个 App 间启动
http://developer.nokia.com/: URI associations for Windows Phone http://msdn.microsoft.com/: Auto-lau ...
- 解决ASP.NET Core Mvc文件上传限制问题
一.简介 在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢? 二.设置上传 ...
- 进一步丰富和简化表单管理的组件:form.js
上文<简洁易用的表单数据设置和收集管理组件>介绍了我自己的表单管理的核心内容,本文在上文的基础上继续介绍自己关于表单初始值获取和设置以及表单数据提交等内容方面的做法,上文的组件粒度很小,都 ...
- GitHub-版本控制
GitHub的使用:注册,登录,邮箱激活,创建第一个repository.如果branch是master,修改,提交,master直接改变. 稳妥起见创建另一个branch,修改,提交,再发出pull ...
- Matches正则使用提取内容
用VS新建WinForm程序,窗体上是三个文本框和一个按钮.可以自己构造正则表达式,自己修改匹配内容 正则表达是要提取的部分为hewenqitext 代码如下: using System; using ...
- jQuery+HTML5弹出创意搜索框层
效果体验:http://hovertree.com/texiao/jquery/26/ 本效果适用于移动设备,可以使用手机等浏览效果. 代码下载:http://hovertree.com/h/bjaf ...
- Asp.net 面向接口可扩展框架之“Mvc扩展框架及DI”
标题“Mvc扩展框架及DI”有点绕口,我也想不出好的命名,因为这个内容很杂,涉及多个模块,但在日常开发又密不可分 首先说Mvc扩展框架,该Mvc扩展就是把以前的那个Mvc分区扩展框架迁移过来,并优化整 ...
- jquery——左右按钮点击切换一组图片功能
一.最终效果 二.功能分析 1.需求分析 点击左边pre按钮,显示前面三个图片,点击右边的next按钮,显示后面的一组(三个)图片.初始化只显示next按钮,到最后一组只显示pre按钮,中间过程两按钮 ...
- Java动态代理全面分析
代理模式 解说:给某一个对象提供一个代理,并由代理对象控制对原对象的引用: 代理模式需要以下几个角色: 1 主题:规定代理类和真实对象共同对外暴露的接口: 2 代理类:专门代理真实对象的类: 3 ...
- c# json序列化 意外字符i 意外字符ï 解决方案
今天使用DataContractJsonSerializer遇到了这个问题 这是个蛋疼的问题,折腾了我好久,反复检查对象和json字符串,没发现什么问题,而且错误提示还看走眼了,是ï不是i 现公布解决 ...