美文网首页
Docker 搭建 Nginx 集群

Docker 搭建 Nginx 集群

作者: 一颗地梨子 | 来源:发表于2020-04-03 01:21 被阅读0次

    什么是负载均衡就不多说了、自己可以百度查看

    实现负载均衡其实并不难、只是很多人不敢去尝试而已,简单来说就是:

    在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去。然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡.

    nginx的负载均衡有4种模式:

    1)、轮询(默认)

        每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    2)、weight

        指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    3)、ip_hash

        每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    4)、fair , url_hash(第三方)

        按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    具体操作如下: (由于成本问题、这里直接采用Docker 做演示,实际操作基本相同)

    拉取nginx 

        docker pull nginx ( docker pull daocloud.io/nginx 这个稍微快点 )

    实例化容器

        docker run -itd --name nginx1 -p 8080:80 nginx /bin/bash -- 主

        docker run -itd --name nginx2 nginx /bin/bash

        docker run -itd --name nginx3 nginx /bin/bash

        docker ps 查看

    检查docker的虚拟网卡

           docker network ls

    docker nerwork inspect d530da7ebbd3

    修改配置文件

           进入nginx1 (主)

                docker exec -it d530da7ebbd3 /bin/bash   

                安装 vim 编辑器 (如有其他、尽可随意)   ---  注意:nginx2、nginx3 均安装 编辑器、下文不再赘述

                            1.  apt update   2.  apt install vim 

                cd /etc/nginx/

                vim nginx.conf

        进入nginx2

                    docker exec -it e59de010efff /bin/bash

                        cd /usr/share/nginx/html/

                        vim index.html

                                Welcome to nginx! 后添加: From 172.17.0.3:80 即可

                进入nginx3

                    docker exec -it 0f12240cb622 /bin/bash

                        cd /usr/share/nginx/html/

                        vim index.html

                                Welcome to nginx! 后添加: From 172.17.0.4:80 即可

    重启三个nginx服务   service nginx restart

    此时如果 docker容器会关闭、因此需要再次重启

            docker start d530da7ebbd3

            docker start e59de010efff

            docker start 0f12240cb622

    测试结果

    补充:

        上述说到负载均衡有4种模式、

    配置分别如下:

    轮询模式:

        upstream webname {

            server192.168.0.1:8080;

            server192.168.0.2:8080;

      }

    weight模式:

        upstream webname {

            server192.168.0.1:8080 weight=2;

            server192.168.0.2:8080 weight=1;

      }

    ip_hash模式:

     upstream webname {

        ip_hash;

        server192.168.0.1:8080;

        server192.168.0.2:8080;

      }

    其他配置:

    设置某一个节点为backup,那么一般情况下所有请求都访问server1,当server1挂掉或者忙的的时候才会访问server2

    upstream webname {

        server192.168.0.1:8080;

        server192.168.0.2:8080 backup;

      }

    设置某个节点为down,那么这个server不参与负载。

    upstream webname {

        server192.168.0.1:8080;

        server192.168.0.2:8080 down;

      }

    相关文章

      网友评论

          本文标题:Docker 搭建 Nginx 集群

          本文链接:https://www.haomeiwen.com/subject/yplqphtx.html