nginx负载均衡之docker容器

分为两种情况:
1.容器间无关联
这种情况,可以采用除nginx端口外容器应用端口全部都指向nginx所指向的宿主机端口,然后由nginx统一进行映射。

2.容器间为集群模式
这种情况,可以指定集群某个节点为主节点,然后其他全部节点在容器内映射各自的端口,但是记得映射宿主机端口的时候,统一映射到一个端口上,然后nginx负载均衡到集群的各个节点的各个容器的端口。

例如:es集群
容器1:es01
容器2:es02
容器3:es03
容器4:nginx(用来做负载均衡)
es镜像映射宿主机需要:
es01 8080:8080
es02 8081:8080
es03 8082:8080

然后nginx指定监听端口(例如8800),对域名进行转发,前端访问localhost:8800,如可随机访问es集群节点即配置成功(默认轮询方式,可自行配置)。
具体nginx的配置,放到http里面:

upstream 域名 {
	server 容器ip:8080;
	server 容器ip:8081;
	server 容器ip:8082;
}
server {
	listen 8800;
	server_name nginx-proxy;
	location / {
		proxy_pass 域名
	}
}

附1:
具体验证过程(包含安装es):
1)拉取es镜像
查看es有哪些镜像,一般选择stars数最多的:
docker search elasticsearch
在这里插入图片描述
查看es的版本:
curl https://registry.hub.docker.com/v1/repositories/elasticsearch/tags| tr -d ‘[[]" ]’ | tr ‘}’ ‘\n’| awk -F: -v image=‘elasticsearch’ ‘{if(NR!=NF && $3 != “”){printf(“%s:%s\n”,image,$3)}}’
在这里插入图片描述

选择合适的版本拉取,一般来说es集群选择7.0以上的,7.0以下版本集群配置比较难找:
docker pull elasticsearch:7.0.0
在这里插入图片描述

编写配置文件(通过容器编排启动,需安装docker-compose,一般单机部署集群使用):vi docker-compose.yml

这里需要注意的是,启动集群如果不需要负载均衡,那么只需要暴露一个端口即可。如果nginx作为负载均衡,就需要在容器内部暴露不同端口,且映射到宿主机同一端口,然后nginx监听这个端口,根据端口将请求转发到不同的es节点。

在docker中,配置文件一般都通过挂载的方式挂载到容器中,需要将我们自己的nginx的配置文件通过挂载的方式替换掉nginx容器实例内部的配置文件,也就是指nginx.config。

运行启动命令:docker-compose up -d
-d指的是以后台方式运行,如果需要观察启动日志,可以去掉。验证是否启动成功也很简单,直接localhost加端口号访问nginx即可跳转到对应es节点,多次访问会跳转到不同的节点即部署成功。

附2:
安装docker
curl -sSL https://get.daocloud.io/docker | sh
安装docker-compose
curl -L “https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose
添加执行权限:chmod +x /usr/local/bin/docker-compose
需要把docker-compose设置为全局环境变量,可通过软链接的方式:ln -sf /usr/local/bin/docker-compose /usr/bin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值