使用nginx实现负载均衡(Docker版本)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fyq201749/article/details/84955212

现在服务都要处理高并发的问题,如果将服务部署在一台服务器上,当很多人同时访问可能会使服务器内存过高而导致系统崩溃,所以就需要使用负载均衡来减轻服务器的负担。通过修改nginx配置可以实现负载均衡。
nginx文档链接:http://www.nginx.cn/doc/

举个例子:
在这里插入图片描述
如图所示,有多个用户访问同一网站,中间服务器(x.x.x.x)并不会做任何业务逻辑的处理,它只负责转发到后面三个服务器,让后面的服务器做业务逻辑处理,这就是负载均衡。其实所谓的几层几层的负载均衡并不像神经网络那样有一层一层的神经元,所谓四层负载均衡是指在传输层(osi协议的第四层)根据ip和端口号来做负载均衡,七层负载均衡是指在应用层(osi协议的第七层)根据不同的浏览器或者不同的语言等等做负载均衡。nginx做的负载均衡是四层负载均衡。

下面我使用Docker来模拟负载均衡(用虚拟机开多台机器也可以,但太耗内存):
1.下载Docker
Docker下载链接地址(根据操作系统下载各个版本,我是mac):https://www.docker.com/get-started
2.下载镜像
Docker下载安装完成之后打开终端下载镜像
Docker镜像地址:https://hub.docker.com/explore
Docker镜像很丰富,可以根据自己的需求下载不同的镜像
镜像下载命令

docker pull nginx

下载完成后通过 docker images来查看镜像
3.生成容器
Docker通过镜像生成容器,就像把类实例化
生成容器命令(mac 版本 其他版本命令请自行搜索)

docker run -p 80 --name  容器名字 -t -i nginx /bin/bash

运行完成后会直接进入容器内部
当然也可以通过attach命令进入容器
上面是随机分配端口绑定本机80端口 也可以指定端口绑定 例如:12345:80
再执行一次命令生成两个容器
通过 docker ps -a查看容器id、运行状态及绑定端口号
4.复制代码到容器
将你的网站复制到容器内部

docker cp 目录或文件 容器id:目录
例如:docker cp index.html 48cf24251211:/data

5.修改nginx配置
修改两个容器内部的nginx配置并运行nginx,确保两个容器的网站都能运行
在你的本机安装nginx(注意不是在容器里)
找到nginx.conf文件
修改nginx配置将你的两个容器绑定的ip和端口号写入配置 文档链接:http://www.nginx.cn/doc/standard/httpupstream.html
修改完成后运行nginx,如果你想自己编写nginx.conf,运行时加上你的nginx.conf 的路径
5.访问网站
访问本机网站会自动跳转到另外两个容器所绑定的端口,至于访问策略在nginx文档中有提到。

猜你喜欢

转载自blog.csdn.net/fyq201749/article/details/84955212