使用docker搭建nginx集群,实现负载均衡
注:此次nginx 集群搭建测试在阿里云服务上搭建。
一、下载、安装nginx镜像、离线安装nginx镜像
(1) 可以访问网络的情况下使用 docker pull nginx 就可以拉取nginx 镜像地址;
(2) 没有网络的情况下,外网下载nginx.tar包,拷贝到xftp上,记住目录,cd到目录下, 使用 docker load -i nginx.tar(包名) 加载镜像;
(3) 此时 docker images 就会出现 nginx 镜像信息,就说明 安装nginx镜像成功;
(4) 接下来 简单的 运行一下 docker run --name nginx-test -p 8080:80 -d nginx - 命令 简单解释一下 --name + 容器名(自定义) -p +宿主机端口:容器端口 --d 后台运行 -- nginx 镜像名称 - 有其他docker命令不明白的,docker -h 查看帮助手册;
(5) 此时现在 宿主机IP+ 宿主机端口 访问就能看到 Welcome to nginx 页面。
二、拷贝nginx 配置文件夹和html文件
(1) 也可以自己去创建,文件夹拷贝出来之后,就可以删掉容器,这个nginx-test。
三、搭建nginx服务器
(1) 准备搭新建nginx容器(宿主) docker run -d -it -p 8080:80 --name nginx8080 -v ~/conf:/etc/nginx -v ~/www:/usr/share/nginx/html nginx -v 是挂载的意思,将宿主机的文件映射到容器中;
(2) 更改html内容,查看挂载是否生效
(3) 再准备复制三个配置文件,这个文件多少可以根据多少个子级群创建。
① docker run -d -it -p 8081:80 --name nginx8081 -v ~/conf1:/etc/nginx -v ~/www1:/usr/share/nginx/html nginx
② docker run -d -it -p 8082:80 --name nginx8082 -v ~/conf2:/etc/nginx -v ~/www2:/usr/share/nginx/html nginx
③ docker run -d -it -p 8083:80 --name nginx8083 -v ~/conf3:/etc/nginx -v ~/www3:/usr/share/nginx/html nginx
四、配置nginx default.cnf 进行负载均衡
(1) 目前为止,一共有4台 nginx 服务器,分别是端口8080,8081,8082,8083
查看网络详细信息docker network inspect adea3aa507d4 (bridge 虚拟网卡)
(2) 配置以下信息
Upstream 主要作用就是负载均衡,就是大概类似轮询集群进行负载,weight用来分配策略,就是权重级别设置。分别对应1:2:2
配置完成以后进入主服务器容器 重启服务器
五、进行测试服务器请求权重比例
(1) 然后退出,分别修改三台服务器的html内容
(2) 可以用命令进行测试、也可以访问网页进行测试, 服务器的请求概率就是我们前面设定的 1:2:2比例
End ----------------------------------------------