• 负载均衡的配置


    负载均衡的工作原理?

    在这里准备两个虚拟机,然后将tomcat安装在上面

    关闭两个虚拟机的防火墙:

    解压tomcat :

    然后将压缩包nginx上传到linux系统中,然后解压.进入到这个文件中,

    因为nginx是使用C语言写的,所以需要进行编译

    1.1     编译安装

    将nginx-1.8.0.tar.gz拷贝至linux服务器。

    解压:

    tar -zxvf nginx-1.8.0.tar.gz –C /usr/local/src

    cd /usr/local/nginx-1.8.0

    1、  Configure

    注意:进入nginx的解压目录下执行该脚本

    ./configure --help查询详细参数(参考本教程附录部分:nginx编译参数)

    参数设置如下:

    ./configure 
    --prefix=/usr/local/nginx 
    --pid-path=/var/run/nginx/nginx.pid 
    --lock-path=/var/lock/nginx.lock 
    --error-log-path=/var/log/nginx/error.log 
    --http-log-path=/var/log/nginx/access.log 
    --with-http_gzip_static_module 
    --http-client-body-temp-path=/var/temp/nginx/client 
    --http-proxy-temp-path=/var/temp/nginx/proxy 
    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
    --http-scgi-temp-path=/var/temp/nginx/scgi

    注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

    mkdir -p /var/temp/nginx

    1、  编译安装

    make

    make  install

    安装成功查看安装目录 :

     

       启动nginx

    cd /usr/local/nginx/sbin/

    ./nginx

    查询nginx进程:

    15098是nginx主进程的进程id,15099是nginx工作进程的进程id

    注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:

    ./nginx -c /usr/local/nginx/conf/nginx.conf

    如果不指定-c,nginx在启动时默认加载/usr/local/nginx/conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path= 指向配置文件(nginx.conf))

     停止nginx

    方式1,快速停止:

    cd /usr/local/nginx/sbin

    ./nginx -s stop

    此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

    方式2,完整停止(建议使用):

    cd /usr/local/nginx/sbin

    ./nginx -s quit

    此方式停止步骤是待nginx进程处理任务完毕进行停止。

    重启nginx

    方式1,先停止再启动(建议使用):

    对nginx进行重启相当于先停止nginx再启动nginx,即先执行停止命令再执行启动命令。

    如下:

    ./nginx -s quit

    ./nginx

    方式2,重新加载配置文件:

    当nginx的配置文件nginx.conf修改后,要想让配置生效需要重启nginx,使用-s reload不用先停止nginx再启动nginx即可将配置信息在nginx中生效,如下:

    ./nginx -s reload

     安装测试

    nginx安装成功,启动nginx,即可访问虚拟机上的nginx:

    Nginx虚拟主机

    早期图片访问用的Nginx

     Nginx反向代理服务器

    Conf/nginx.conf

    进入nginx/conf目录下,修改nginx.conf配置文件。

    upstream tomcat_server{

            server 192.168.200.128:8080;

    }

    proxy_pass http://tomcat_server;

      Nginx负载均衡服务器

    upstream tomcat_server{

       server 192.168.200.130:8080 weight=10;

       server 192.168.200.148:8080 weight=20;

    }

    搭建nginx备机时候需要使用Keepalived高可用解决方案

    什么是Keepalived?

    Keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障.

    Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,keepalived将检测到,并将故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只修复故障的web服务器.

    安装keepalived---主机

       上传RPM

    使用crt工具直接进行上传

       安装Keepalived软件

    rpm -ivh keepalived-1.2.13-5.el6_6.i686.rpm

       查看安装路径

    rpm -ql keepalived

     

         配置虚拟IP---vip

    编辑 keepalived.conf配置文件。

    1、  清空配置文件

     

    2、  添加配置信息

    ! 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.200.100       #可以多个虚拟IP,换行即可

        192.168.200.101

        }

    }

     

        启动、停止服务

    1、  启动keepalived

     

    2、  停止keepalived

     

        查看VIP

     

         访问

     

     

         安装keepalived---备机

      安装过程

    上传rpm压缩包,解压,安装

      修改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 BACKUP           #标示状态为MASTER 备份机为BACKUP

        interface eth0         #设置实例绑定的网卡

        virtual_router_id 51   #同一实例下virtual_router_id必须相同

        priority 88           #MASTER权重要高于BACKUP 比如BACKUP为99 

        advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒

        authentication {       #设置认证

            auth_type PASS     #主从服务器验证方式

            auth_pass 8888

        }

        virtual_ipaddress {    #设置vip

            192.168.200.100       #可以多个虚拟IP,换行即可

            192.168.200.101

        }

    }

     

     修改nginx/conf目录下nginx.conf

     

     查看VIP

    主机的keepalived正常运行时,备机的keepalived不工作,只有主机的keepalived宕机后,备机才接管服务

     

        nginx与keepalived不同时存在问题

      场景

    当主机、备机的keepalived都正常时,而主机的nginx挂掉,那么此时我们就不能正常访问了。因为这时请求还是经过主机的keepalived,而keepalived不知道主机宕机,所以,此时应该让主机的keepalived挂掉,从而备机接管服务。

      在keepalived目录下创建脚本

    在主机上创建:

    touch check_nginx.sh

     

     编辑脚本

    #!/bin/bash

    # 如果进程中没有nginx则将keepalived进程kill掉

    A=`ps -C nginx --no-header |wc -l`      ## 查看是否有 nginx进程 把值赋给变量A

    if [ $A -eq 0 ];then                    ## 如果没有进程值得为 零

           service keepalived stop          ## 则结束 keepalived 进程

    fi

     

      设置脚本的执行权限

    chmod 777 check_nginx.sh

     

      编辑keepalived.conf

    #全局配置

    global_defs {

       notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个

         XXX@XXX.com

       }

       notification_email_from miaoruntu@itcast.cn  #指定发件人

       #smtp_server XXX.smtp.com                             #指定smtp服务器地址

       #smtp_connect_timeout 30                               #指定smtp连接超时时间

       router_id LVS_DEVEL                                    #运行keepalived机器的一个标识

    }

    vrrp_script check_nginx {

        script "/etc/keepalived/check_nginx.sh"         ##监控脚本

        interval 2                                      ##时间间隔,2秒

        weight 2                                        ##权重

    }

    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

        }

       track_script {

            check_nginx        #监控脚本

       }

        virtual_ipaddress {    #设置vip

            192.168.101.100       #可以多个虚拟IP,换行即可

        }

    }

     

      完美解决

    在主机的nginx宕机后,主机的keepalived自动结束进程。从而备机接官服务。

     主机nginx宕机

     

    备机

     

  • 相关阅读:
    通过精灵图片序列单元制作Html+CSS3 动画
    App开发三种模式
    Matrix
    MySQL SQL
    Git和GitHub
    Web前端入门了解
    LayoutInflater和inflate()
    使用XML文件和Java代码控制UI界面
    Android Handler
    Android Gradle的使用
  • 原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/10817189.html
Copyright © 2020-2023  润新知