nginx集群必须三个吗

nginx集群必须三个吗,第1张

不不是必须三台,在特殊工作情况下用三个。第一台文件服务器,第二台做数据库服务器,第三台nginx脚本服务器。Nginx(enginex)是一个高性能的HTTP和反向代理web服务器[13],同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,公开版本1.19.6发布于2020年12月15日。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

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

在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 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 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

  }


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/400557.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存