Docker部署nginx实现负载均衡

作者: adm 分类: docker 发布时间: 2022-07-21

docker 安装Nginx容器

docker pull nginx

docker run 创建容器

//winpty docker run -p 90:80 --name nginx_master -it nginx bash  win10
docker run -d -p 90:80 --name nginx_master -it nginx /bin/bash

docker run -d -p 91:80 --name nginx_web1 -it nginx /bin/bash
docker run -d -p 92:80 --name nginx_web2 -it nginx /bin/bash
docker run -d -p 93:80 --name nginx_backup -it nginx /bin/bash

进入nginx_web1、nginx_web2、nginx_backup容器的nginx目录下 创建一个index.html

//winpty docker exec -it nginx_web1 bash
docker exec -it nginx_web1 /bin/bash
apt-get update
apt-get install vim



cd /usr/share/nginx/html/

vim index.html

查看对应的nginx容器的ip

docker inspect nginx_web1 | grep "IPAddress"

进入负载均衡nginx

cd /etc/nginx/conf.d/

vim  default.conf

// yinzhongnetcom  标识名称
upstream yinzhongnetcom { 
      server  172.17.0.1:91 weight=10; 
      server  172.17.0.1:92 weight=20; 
      server  172.17.0.1:93 backup; 
      server  172.17.0.1:94 max_fails=3 fail_timeout=15;
      keepalive	32;
}
server{ 
    listen 80; 
    server_name localhost; 
    location / { 
        proxy_http_version	1.1;  # 配置 http 版本,默认是 http1.0,不支持长连接
        proxy_set_header	Connection ""; # 将 Connction:close 中的 close 去掉
        proxy_pass         http://yinzhongnetcom; 
        proxy_set_header   Host             $host; 
        proxy_set_header   X-Real-IP        $remote_addr; 
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
    } 
}

upstream 配置

1、down

表示单前的server暂时不参与负载

2、Weight

默认为1.weight越大,负载的权重就越大。

3、max_fails

允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4、fail_timeout

max_fails 次失败后,暂停的时间。

5、Backup

其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!