Nginx(搭建高可用集群)

慈云数据 2024-05-09 技术支持 32 0

文章目录

    • 1.基本介绍
        • 1.在微服务架构中的位置
        • 2.配置前提
        • 3.主从模式架构图
        • 2.启动主Nginx和两个Tomcat
            • 1.启动linux的tomcat
            • 2.启动win的tomcat
            • 3.启动主Nginx,进入安装目录 `./sbin/nginx -c nginx.conf`
            • 4.windows访问 http://look.sunxiansheng.cn:7777/search/cal.jsp
            • 3.配置从Nginx
                • 1.将主虚拟机复制一份作为从虚拟机
                • 2.打开从虚拟机测试
                • 3.保证新虚拟机的ip和win在同一网段
                  • 1.查看新虚拟机ip `ifconfig`
                  • 2.查看win的ip `ipconfig`
                  • 3.互相ping一下保证网络通畅
                  • 4.保证两台虚拟机之间可以ping通
                  • 5.Xshell远程登录两个虚拟机
                  • 6.配置域名解析到 192.168.200.129
                  • 7.修改nginx.conf(修改主机名即可)
                    • 1.http全局块
                    • 2.server块
                    • 8.测试从nginx访问
                      • 1.启动win的tomcat
                      • 2.启动linux的tomcat
                      • 3.启动从Nginx,进入安装目录 `./sbin/nginx -c nginx.conf`
                      • 4.win测试访问 http://look2.sunxiansheng.cn:7777/search/cal.jsp
                      • 9.综合测试
                        • 1.由于看不出来结果的区别
                          • 1.修改win的tomcat中cal.jsp的内容
                          • 2.修改主从Nginx中的tomcat中的cal.jsp文件然后重启tomcat
                          • 2.重启win的tomcat
                          • 3.win访问主Nginx http://look.sunxiansheng.cn:7777/search/cal.jsp
                          • 4.win访问从Nginx http://look2.sunxiansheng.cn:7777/search/cal.jsp
                          • 4.在两台linux主机下载keepalived(这里只演示一个)
                              • 1.将文件上传到`/opt`目录下
                              • 2.在`/opt`下创建目录 /keepalived `mkdir /opt/keepalived`
                              • 3.进入`/opt`目录,然后将文件解压到刚才创建的目录 `cd /opt/` `tar -zxvf keepalived-2.0.20.tar.gz -C ./keepalived`
                              • 4.进入解压到的文件夹下 `cd /opt/keepalived/keepalived-2.0.20`
                              • 5. 配置文件放到/etc下,安装到/usr/local下这样启动的指令就在/usr/local/sbin目录下 `./configure --sysconf=/etc --prefix=/usr/local`
                              • 6.安装 `make && make install`
                              • 7.如果安装成功,检查配置目录和启动指令
                              • 8.在另一台linux主机也安装一下!!!
                              • 5.完成高可用集群配置
                                  • 1.配置主Nginx
                                    • 编辑keepalived.conf的配置文件 `vim /etc/keepalived/keepalived.conf`
                                    • 2.配置从Nginx
                                      • 编辑keepalived.conf的配置文件 `vim /etc/keepalived/keepalived.conf`
                                      • 3.测试
                                        • 1.启动 两个keepalived `/usr/local/sbin/keepalived`
                                        • 2.输入 ip a,看到配置的虚拟ip即成功
                                        • 3.使用windows来ping这个虚拟ip,如果能ping通则说明可用
                                        • 4.如果没有ping通,就是配置文件的vrrp_strict没注销
                                          • 1.注销vrrp_strict
                                          • 2.关闭keepalived `killall keepalived` 或者 `kill -9 进程号`
                                          • 3.再次启动 `/usr/local/sbin/keepalived`
                                          • 4.总体测试
                                            • 1.win访问 http://192.168.200.18:7777/search/cal.jsp 会一直访问win和主Nginx
                                            • 2.关闭主的keepalived来模拟主Nginx挂掉
                                            • 3.win再次访问 http://192.168.200.18:7777/search/cal.jsp
                                            • 6.编写自动检测Nginx异常脚本kill keepalived
                                                • 1.进入keeplived配置文件目录 `cd /etc/keepalived/`
                                                • 2.编写shell脚本 `vim ch_nginx.sh`
                                                • 3.为该脚本增加执行权限 `chmod 755 ch_nginx.sh`
                                                • 4.编写配置文件 `vim /etc/keepalived/keepalived.conf`
                                                • 5.重启主Nginx所在的keepalived `killall keepalived && /usr/local/sbin/keepalived`
                                                • 6.测试
                                                  • 1.关闭主nginx `./sbin/nginx -s stop`
                                                  • 2.浏览器访问 http://192.168.200.18:7777/search/cal.jsp
                                                  • 7.注意事项和细节
                                                    • 1.注意事项
                                                    • 2.keepalived.conf 详解

                                                      1.基本介绍

                                                      1.在微服务架构中的位置

                                                      image-20240407140155292

                                                      2.配置前提

                                                      image-20240407140830550

                                                      3.主从模式架构图
                                                      • 注意:这里由于tomcat1在主Nginx上,一旦主Nginx崩溃,则这个tomcat就不可用,所以才需要在从Nginx也搭建一份,如果部署在独立主机上就不需要,就像这个tomcat2

                                                        2.启动主Nginx和两个Tomcat

                                                        1.启动linux的tomcat

                                                        image-20240407143616337

                                                        2.启动win的tomcat

                                                        image-20240407143708044

                                                        3.启动主Nginx,进入安装目录 ./sbin/nginx -c nginx.conf
                                                        4.windows访问 http://look.sunxiansheng.cn:7777/search/cal.jsp

                                                        image-20240407145553336

                                                        3.配置从Nginx

                                                        1.将主虚拟机复制一份作为从虚拟机

                                                        image-20240407153840257

                                                        2.打开从虚拟机测试

                                                        image-20240407153943910

                                                        3.保证新虚拟机的ip和win在同一网段
                                                        1.查看新虚拟机ip ifconfig

                                                        image-20240407154456661

                                                        2.查看win的ip ipconfig

                                                        image-20240407154631237

                                                        3.互相ping一下保证网络通畅

                                                        image-20240407154651353

                                                        image-20240407154704896

                                                        4.保证两台虚拟机之间可以ping通

                                                        image-20240407155255781

                                                        image-20240407155304675

                                                        5.Xshell远程登录两个虚拟机

                                                        image-20240407160100623

                                                        6.配置域名解析到 192.168.200.129

                                                        image-20240407161158332

                                                        7.修改nginx.conf(修改主机名即可)
                                                        1.http全局块

                                                        image-20240407161719532

                                                        2.server块

                                                        image-20240407161729776

                                                        8.测试从nginx访问
                                                        1.启动win的tomcat
                                                        2.启动linux的tomcat

                                                        image-20240407162359458

                                                        3.启动从Nginx,进入安装目录 ./sbin/nginx -c nginx.conf
                                                        4.win测试访问 http://look2.sunxiansheng.cn:7777/search/cal.jsp

                                                        image-20240407162720142

                                                        9.综合测试
                                                        1.由于看不出来结果的区别
                                                        1.修改win的tomcat中cal.jsp的内容

                                                        image-20240407163631586

                                                        2.修改主从Nginx中的tomcat中的cal.jsp文件然后重启tomcat

                                                        image-20240407164731044

                                                        image-20240407164417923

                                                        2.重启win的tomcat
                                                        3.win访问主Nginx http://look.sunxiansheng.cn:7777/search/cal.jsp

                                                        image-20240407165147179)

                                                        image-20240407163759075

                                                        4.win访问从Nginx http://look2.sunxiansheng.cn:7777/search/cal.jsp

                                                        image-20240407165217634

                                                        image-20240407163831881

                                                        4.在两台linux主机下载keepalived(这里只演示一个)

                                                        1.将文件上传到/opt目录下

                                                        image-20240407170123038

                                                        2.在/opt下创建目录 /keepalived mkdir /opt/keepalived
                                                        3.进入/opt目录,然后将文件解压到刚才创建的目录 cd /opt/ tar -zxvf keepalived-2.0.20.tar.gz -C ./keepalived

                                                        image-20240407170915846

                                                        4.进入解压到的文件夹下 cd /opt/keepalived/keepalived-2.0.20

                                                        image-20240407171105717

                                                        5. 配置文件放到/etc下,安装到/usr/local下这样启动的指令就在/usr/local/sbin目录下 ./configure --sysconf=/etc --prefix=/usr/local

                                                        image-20240407171518409

                                                        image-20240407171614106

                                                        6.安装 make && make install

                                                        image-20240407171738617

                                                        7.如果安装成功,检查配置目录和启动指令

                                                        image-20240407171817048

                                                        image-20240407171926121

                                                        8.在另一台linux主机也安装一下!!!

                                                        5.完成高可用集群配置

                                                        1.配置主Nginx
                                                        编辑keepalived.conf的配置文件 vim /etc/keepalived/keepalived.conf

                                                        image-20240407173602570

                                                        image-20240407173735851

                                                        2.配置从Nginx
                                                        编辑keepalived.conf的配置文件 vim /etc/keepalived/keepalived.conf

                                                        image-20240407174036816

                                                        image-20240407181312292

                                                        3.测试
                                                        1.启动 两个keepalived /usr/local/sbin/keepalived

                                                        image-20240407174550886

                                                        image-20240407174543313

                                                        2.输入 ip a,看到配置的虚拟ip即成功

                                                        image-20240407174829097

                                                        3.使用windows来ping这个虚拟ip,如果能ping通则说明可用

                                                        image-20240407175007813

                                                        4.如果没有ping通,就是配置文件的vrrp_strict没注销
                                                        1.注销vrrp_strict

                                                        image-20240407175140213

                                                        2.关闭keepalived killall keepalived 或者 kill -9 进程号

                                                        image-20240407175610064

                                                        3.再次启动 /usr/local/sbin/keepalived
                                                        4.总体测试
                                                        1.win访问 http://192.168.200.18:7777/search/cal.jsp 会一直访问win和主Nginx

                                                        image-20240407180247589

                                                        image-20240407180253631

                                                        2.关闭主的keepalived来模拟主Nginx挂掉

                                                        image-20240407180642129

                                                        3.win再次访问 http://192.168.200.18:7777/search/cal.jsp

                                                        image-20240407181847419

                                                        image-20240407181840010

                                                        6.编写自动检测Nginx异常脚本kill keepalived

                                                        1.进入keeplived配置文件目录 cd /etc/keepalived/

                                                        image-20240407193313910

                                                        2.编写shell脚本 vim ch_nginx.sh
                                                        #!/bin/bash
                                                        num=`ps -C nginx --no-header | wc -l`
                                                        if [ $num -eq 0 ];then
                                                        killall keepalived
                                                        fi
                                                        
                                                        3.为该脚本增加执行权限 chmod 755 ch_nginx.sh

                                                        image-20240407193259347

                                                        4.编写配置文件 vim /etc/keepalived/keepalived.conf

                                                        image-20240407194118625

                                                        5.重启主Nginx所在的keepalived killall keepalived && /usr/local/sbin/keepalived

                                                        image-20240407194304900

                                                        6.测试
                                                        1.关闭主nginx ./sbin/nginx -s stop

                                                        image-20240407194659907

                                                        2.浏览器访问 http://192.168.200.18:7777/search/cal.jsp
                                                        • 这里是因为一旦停止主nginx,我们的脚本就会检测出异常,然后杀死keepalived的进程,然后将权重-20
                                                        • 这时再访问,就只会访问到从Nginx了

                                                          image-20240407194730364

                                                          7.注意事项和细节
                                                          1.注意事项

                                                          image-20240407195240269

                                                          2.keepalived.conf 详解
                                                          #这里只注释要修改的地方
                                                          global_defs {
                                                          notification_email {
                                                          test@foxmail.com #接收通知的邮件地址
                                                          }
                                                          notification_email_from Alexandre.Cassen@firewall.loc #发送邮件的邮箱
                                                          smtp_server 192.168.200.1 #smtp server 地址
                                                          smtp_connect_timeout 30
                                                          router_id Node132 #Node132 为主机标识
                                                          vrrp_skip_check_adv_addr
                                                          #vrrp_strict #这里需要注释,避免虚拟 ip 无法 ping 通
                                                          vrrp_garp_interval 0
                                                          vrrp_gna_interval 0
                                                          }
                                                          vrrp_instance VI_1 {
                                                          state MASTER #主节点 MASTER 备用节点为 BACKUP
                                                          interface ens33 #网卡名称
                                                          virtual_router_id 51 #VRRP 组名,两个节点的设置必须一样,指明属于同一 VRRP 组
                                                          priority 100 #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低
                                                          advert_int 1 #组播信息发送间隔,两个节点设置必须一样
                                                          authentication { #设置验证信息,两个节点必须一致
                                                          auth_type PASS
                                                          auth_pass 1111
                                                          }
                                                          virtual_ipaddress { #指定虚拟 IP, 两个节点设置必须一样
                                                          192.168.200.16
                                                          }
                                                          }
                                                          
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon