Docker部署nginx实现负载均衡
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机器。所以这台机器压力会最轻。