Nginx的负载均衡高可用


***************************************************Nginx负载均衡高可用***************************************************                                     
    1、什么是nginx的负载均衡高可用?
       nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。
    为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。

    2、keepalived+nginx实现主备

      2.1 什么是keepalived?
       keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
     Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
       2.2 keepalived的工作原理?
         keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
    虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(VIP = Virtual IP Address,虚拟IP地址,该路由器所在局域网内其他机器的默认路由为该vip),master会发组播当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
    keepalived主要有三个模块,分别是core、check和VRRP。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。VRRP模块是来实现VRRP协议的。
     2.3 keepalive+nginx实现主备过程?

    3、实现高可用的环境
         两台nginx,一主一备:192.168.101.3和192.168.101.4
         两台tomcat服务器:192.168.101.5、192.168.101.6
    4、安装keepalive(具体的安装步骤参考学习笔记)
    5、配置keepalive

        ******主nginx:修改主nginx下/etc/keepalived/keepalived.conf文件:修改如下所示:
——————————————————————————————————————————————————————————————————————————————————————————————————————————————
            ! Configuration File for keepalived  
            #全局配置
            global_defs {
               notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
                 XXX@XXX.com
               }
               notification_email_from XXX@XXX.com  #指定发件人
               #smtp_server XXX.smtp.com                             #指定smtp服务器地址
               #smtp_connect_timeout 30                              #指定smtp连接超时时间
               router_id LVS_DEVEL                                   #运行keepalived机器的一个标识
            }

            vrrp_instance VI_1 { 
                state MASTER           #标示状态为MASTER 备份机为BACKUP
                interface eth0         #设置实例绑定的网卡
                virtual_router_id 51   #同一实例下virtual_router_id必须相同
                priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99  
                advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
                authentication {       #设置认证
                    auth_type PASS     #主从服务器验证方式
                    auth_pass 8888
                }
                virtual_ipaddress {    #设置vip
                    192.168.101.100    #可以多个虚拟IP,换行即可

                }
            }

——————————————————————————————————————————————————————————————————————————————————————————————————————————————

       ******备用nginx:修改备nginx下/etc/keepalived/keepalived.conf文件:修改如下:
但需要注意的是:配置备nginx时需要注意:需要修改state为BACKUP , priority比MASTER低,virtual_router_id和master的值一致。
——————————————————————————————————————————————————————————————————————————————————————————————————————————————

            ! Configuration File for keepalived
            #全局配置
            global_defs {
               notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
                XXX@XXX.com
               }
               notification_email_from XXX@XXX.com       #指定发件人
               #smtp_server XXX.smtp.com                 #指定smtp服务器地址
               #smtp_connect_timeout 30                  #指定smtp连接超时时间
               router_id LVS_DEVEL                       #运行keepalived机器的一个标识
            }
         
            vrrp_instance VI_1 { 
                state BACKUP                             #标示状态为MASTER 备份机为BACKUP
                interface eth0                           #设置实例绑定的网卡
                virtual_router_id 51                     #同一实例下virtual_router_id必须相同
                priority 99                              #MASTER权重要高于BACKUP 比如BACKUP为99  
                advert_int 1                             #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
                authentication {                         #设置认证
                    auth_type PASS                       #主从服务器验证方式
                    auth_pass 8888

                }
                virtual_ipaddress {                      #设置vip
                    192.168.101.100                      #可以多个虚拟IP,换行即可
                }
            }

——————————————————————————————————————————————————————————————————————————————————————————————————————————————

    6、对主备服务器进行测试
       主备nginx都启动keepalived及nginx。
       service keepalived start
       ./nginx 
   
********************************************************************************************************************************************
********************************************************************************************************************************************
    1、什么是虚拟主机?
       虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的。
       通过nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置,1、基于ip的虚拟主机, 2、基于域名的虚拟主机 3、基于端口的虚拟主机

    2、nginx配置文件的结构?

       从第一个虚拟主机的例子可以看出nginx的配置文件结构如下:

                            ......
                            events {
                                .......
                            }
                            http{
                               .......
                               server{
                                .......
                                }
                               server{
                                .......
                                }

                            }
       每个server就是一个虚拟主机。

**************************************************************************************************************************************
**************************************************************************************************************************************

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值