Day-08 基于 Docker安装 Nginx 镜像-负载均衡

1、反向代理后,自然而然就引出了负载均衡,下面简单实现负载均衡的效果;

2、实现该效果需要再添加一个 Nginx ,所以要增加一个文件夹。

bash 复制代码
/home
    |---mutou
           |----nginx
                  |----conf.d
                  |----html
                  |----conf.d2
                  |----html3

1.创建 html3 文件夹, 新建 index.html、index-test.html 文件

bash 复制代码
cd html3/
vi index.html
vi index-test.html

index.html、index-test.html 代码如下

html 复制代码
<html>
  <body>
    <h2>it is html3</h2>
  </body>
</html>

2. 修改 home/mutou/nginx/conf.d/default.conf 配置文件

bash 复制代码
vi defaul.conf

修改内容如下:

bash 复制代码
server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location /demo {
       try_files $uri $uri/ /index-test.html;
    }
}

3. 重启 Docker 镜像

此时,查看所有运行中的docker容器

bash 复制代码
docker ps

然后重启该停止:

bash 复制代码
docker restart 容器id

4. 启动新容器, 挂载配置文件

ps: 端口为 8081 、 8080

bash 复制代码
docker run -d -p 8081:80 -v /home/mutou/nginx/conf.d:/etc/nginx/conf.d  -v /home/mutou/nginx/html3:/usr/share/nginx/html nginx
bash 复制代码
docker run -d -p 8080:80 -v /home/mutou/nginx/conf.d:/etc/nginx/conf.d  -v /home/mutou/nginx/html3:/usr/share/nginx/html nginx

5.配置负载均衡

1、访问ip/demo 时,平均分发到8080端口和8081端口上;

2、即it is html1it is html3间接出现;

配置负载均衡,那就是配置在第二次的nginx上,就是反向代理的nginx上,

我们去conf.d2文件夹下,修改default.conf文件,如下:

bash 复制代码
upstream group{
    server 58.87.88.124:8081;
    server 58.87.88.124:8080;
}
server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location /demo {
        # 在该位置配置反向代理,将ip/demo1请求拦截,发送给8080端口,如果不是本机请使用公网ip
        proxy_pass  http://group;
    }
}

此时,查看所有运行中的docker容器:

bash 复制代码
docker ps

然后重启该容器:

bash 复制代码
docker restart 容器id

6. 查看效果

1、访问ip/demo,每次刷新页面;

2、页面都会在 html1 和 html3 中进行切换,此时负载均衡的效果就实现了。

7.配置负载均衡的权重

1、可以使用下面的配置修改两个端口的权重(即谁被访问的概率大);

ps: weight 越大权重越高 ;

bash 复制代码
upstream group1{
    server 你的刚才的ip地址:8080 weight=1;
    server 你的刚才的ip地址:8081 weight=10;
}

server {
    listen       80;
    server_name  localhost;
    location /demo1 {
        proxy_pass   http://group1/;
    }
}

ps: 修改配置文件, 保存退出, 然后重启该容器; 即可实现.

相关推荐
江上清风山间明月6 小时前
Nginx基于域名区分的多网站部署
运维·nginx·部署·php·多个网站
随风,奔跑6 小时前
Nginx
服务器·后端·nginx·web
qq_364371729 小时前
基于 Docker 容器化环境配置
运维·docker·容器
强壮的小白菜10 小时前
Nginx403
nginx
GentleDevin10 小时前
Docker 运维常用命令大全
docker·容器·运维命令
运维全栈笔记10 小时前
基于Docker的MinIO单机部署与功能测试指南
运维·docker·容器
心机之蛙qee11 小时前
docker的安装(RHEL9)
运维·docker·容器
炸炸鱼.11 小时前
Docker 高级管理 —— 容器通信技术与数据持久化
docker
乐hh12 小时前
DM8配置SSL
数据库·docker·ssl
极客先躯12 小时前
高级java每日一道面试题-2025年12月05日-实战篇[Dockerj]-Docker 安装后的默认存储路径是什么?如何修改?
java·docker·默认存储路径在不同系统上的区别·linux overlay2·修改存储路径的理论方法·修改流程中的关键理论点