nginx+docker同⼀服务器上部署多个docker实现负载均衡在提到负载均衡的时候,⼤多数⼈都是想着⼏台服务器甚⾄⼏⼗台服务器组成⼀个组
也就是横向拓展服务器来实现负载均衡吧
但是还有⼀种情况是纵向拓展
也就是当你的项⽬在⼀台服务器上占⽤的资源很少,其实是可以在同⼀台服务器上部署多个项⽬来实现负载均衡的
这⾥利⽤nginx+docker来实现同⼀台服务器实现负载均衡
这⾥⽤的服务器是Linux centos
⼀,搭建nginx
这个步骤⽐较简单,可以⾃⼰百度⼀下,也可以参考我写的另外⼀篇博客
⼆,创建⼀个docker项⽬
1,搭建docker环境,直接yum install docker
2,创建本地项⽬
这⾥⽤java写的⼀个⼩程序,分别输⼊以下内容,分别打成2个jar包
jar包1:
jar包2:
然后把这2个jar包上传到服务器
3,在你存放项⽬的路径创建⼀个名为Dockerfile的⽂件
vim Dockerfile
在⽂件⾥输⼊以下内容
#基础镜像
FROM java:8
#把你的项⽬jar包引⼊到容器的root⽬录下
ADD jar包1.jar /root
#项⽬的启动⽅式
ENTRYPOINT ["java","-jar","/root/jar包1.jar"]
这⾥例⼦⽐较简单,所以Dockerfile的语句⽐较少
4,创建镜像
docker build -t docker1 .
创建成功后,再把⽂件⾥的jar包1.jar换成jar包2.jar
这样就创建了2个镜像
可以先运⾏镜像,然后访问下看看效果
docker run -d -p 8005:7000 docker1
docker run -d -p 8006:7000 docker2
然后浏览器输⼊ip:端⼝访问,如下图
三,修改nginx配置⽂件
1,在nginx的conf⽬录下到f进⾏编辑,如下图
修改监听端⼝,⾃定义
nginx部署前端项目新增框起来的内容,upstream⾥⾯的内容是你同⼀台服务器上部署的多个docker的IP和端⼝
2,启动nginx并输⼊IP和nginx的端⼝,效果如下图
当其中⼀个docker容器挂掉的时候,nginx就不会再分配给那个容器了,当所有docker容器都挂掉了你的服务才⽆法继续访问说到这⾥也有⼈会问如果是直接服务器挂掉了呢
确实会有这种情况发⽣,所以要根据实际情况来决定采⽤⼏台服务器,然后在这些服务器上部署多个docker容器就好了
这样⾄少能保证⼀台服务器挂了还会有其他服务器可以继续访问,⾄于要多少服务器就根据实际的业务
情况来考虑
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论