centos7下keepalived+nginx配置

一、系统架构:

角色                                内网ip                    外网ip
keepalived+nginx           192.168.8.81         192.168.8.201
keepalived+nginx           192.168.8.82         192.168.8.201
web1                              192.168.8.83          -
web2                              192.168.8.84          -

二、nginx配置(两台nginx配置一模一样):

  1. 安装:

    yum  -y  install  nginx
  2. 配置:
    vim /etc/nginx/nginx.conf
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    include /usr/share/nginx/modules/*.conf;
    events {
    worker_connections 1024;
    }
    http {
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    upstream myProxy {
        server 192.168.8.83:80;
        server 192.168.8.84:80;
    }
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
        location / {
            proxy_pass http://myProxy;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    }
  3. 启动:
    systemctl  start  nginx

    三、keepalived配置:

    I、主服务器配置(192.168.8.81):

  4. 安装:
    yum  -y  install  keepalived
  5. 配置:
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
    }
    vrrp_script chk_nginx {
    script "/etc/keepalived/check.sh"
    interval 1
    weight -15
    }
    vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.8.201
    }
    track_script {
        chk_nginx
    }
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
    }
  6. 添加服务检查脚本(check.sh):
    vim /etc/keepalived/check.sh
    #!/bin/bash
    # 心跳检测:如果服务还在运行返回0,否则返回1
    if [ "`ps -aux | grep nginx | wc -l`" == "0" ] ; then
    exit 1
    else
    exit 0
    fi
  7. 通知脚本(notify.sh):
    vim /etc/keepalived/notify.sh
    #!/bin/bash
    # 通知脚本:具体操作
    if [ "$1" == "master" ] ; then
    echo "`date +%F` `date +%T`:切换到主机模式" >> /var/log/keepalived/keepalived.log
    elif [ "$1" == "backup" ] ; then
    /usr/bin/systemctl start nginx
    echo "`date +%F` `date +%T`:切换到备机模式" >> /var/log/keepalived/keepalived.log
    else
    /usr/bin/systemctl start nginx
    echo "`date +%F` `date +%T`:宕机" >> /var/log/keepalived/keepalived.log
    fi
  8. 给脚本添加可执行权限:
    chmod  +x  /etc/keepalived/check.sh
    chmod  +x  /etc/keepalived/notify.sh
  9. 创建日志目录:
    mkdir  /var/log/keepalived
  10. 启动:
    systemctl  start  keepalived

    II、备服务器配置(192.168.8.82):

  11. 安装:
    yum  -y  install  keepalived
  12. 配置:
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
    }
    vrrp_script chk_nginx {
    script "killall -0 nginx"
    interval 1
    weight -15
    }
    vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.8.201
    }
    track_script {
        chk_nginx
    }
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
    }
  13. 添加服务检查脚本(check.sh):
    vim /etc/keepalived/check.sh
    #!/bin/bash
    # 心跳检测:如果服务还在运行返回0,否则返回1
    if [ "`ps -aux | grep nginx | wc -l`" == "0" ] ; then
    exit 1
    else
    exit 0
    fi
  14. 通知脚本(notify.sh):
    vim /etc/keepalived/notify.sh
    #!/bin/bash
    # 通知脚本:具体操作
    if [ "$1" == "master" ] ; then
    echo "`date +%F` `date +%T`:切换到主机模式" >> /var/log/keepalived/keepalived.log
    elif [ "$1" == "backup" ] ; then
    /usr/bin/systemctl start nginx
    echo "`date +%F` `date +%T`:切换到备机模式" >> /var/log/keepalived/keepalived.log
    else
    /usr/bin/systemctl start nginx
    echo "`date +%F` `date +%T`:宕机" >> /var/log/keepalived/keepalived.log
    fi
  15. 给脚本添加可执行权限:
    chmod  +x  /etc/keepalived/check.sh
    chmod  +x  /etc/keepalived/notify.sh
  16. 创建日志目录:
    mkdir  /var/log/keepalived
  17. 启动:
    systemctl  start  keepalived

    三、测试:

    I、测试负载均衡:


    II、测试心跳检测(主服务器:192.168.8.81):

  18. 停止nginx服务:
    systemctl  stop  nginx
  19. 查看日志:
    tail  /var/log/keepalived/keepalived.log


原文地址:http://blog.51cto.com/12173069/2120638

时间: 2024-08-30 12:31:13

centos7下keepalived+nginx配置的相关文章

阿里云centos7下的nginx配置

1.添加资源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令(没有换行): # sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 2.安装Nginx 在你的CentOS 7 服务器中使用yum命令从Nginx源服务器中获取来安装Nginx: # yum install -y nginx 3.启动Nginx 运行Ng

Centos7下安装及配置PPTP VPN

说到VPN服务,我们大家都知道,VPN是虚拟专用网络(Virtual Private Network)的缩写,VPN有多种分类方式,包括PPTP.L2TP.IPSec等,本文配置的VPN服务器是采用PPTP协议的,PPTP是在PPP协议基础上开发的一种新的增强型安全协议.当然在windows上和linux上都可以部署服务,我们今天主要介绍一下在Centos7下安装及配置PPTP VPN. 因为PPTP是基于PPP协议基础上的,因此需要系统支持PPP,使用 rpm -qa ppp 检查是否安装了P

Centos7下安装及配置Zabbix3.0

说到Zabbix相信很多管理员都使用过,因为zabbix所提供的功能给广大管理员们及时得知自己所管理的服务器的服务状态,当然有很多软件服务(cacti.ngios等)都可以实现zabbix类似的功能,但是对于zabbix的功能相对更强大一点,具体就不细说了,今天我们主要介绍一下,Centos7下安装及配置Zabbix3.0的介绍,具体见下: 在安装服务器的时候我们需要注意一些问题:比如服务器的防火墙.selinux等都会影响到Zabbix的正常通信 环境介绍: OS:Centos7 Servic

CentOS7下Firewall防火墙配置用法详解

官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1 修改防火墙配置文件之前,需要对之前防火墙做好备份 重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙拦截 1 2 3 4 5 6 7

CentOS7.1下生产环境Keepalived+Nginx配置

注:下文涉及到配置的,如无特别说明,主备机则一致! 一.环境介绍 1.这是我CentOS的版本,CentOS7.1,主备都为该版本 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [[email protected] ~]# cat /proc/version Linux version 3.10.0-229.el7.x86_64 ([email protected]) (gc

linux下keepalived+nginx的负载均衡搭建

应用场景:集群搭建过程中nginx通常会代理多个tomcat,以达到高可用状态,但此时如果nginx所在的机器宕机,会影响线上使用,可以用keepalived+nginx来做nginx的ha 一.所需环境:1)两台主机proxy01为master,proxy02为backup;2)centos6.6 x64;3)keepalived;4)nginx 二.安装nginx 1)安装编译nginx所需的依赖包 yum install gcc gcc-c++ make automake autoconf

Centos7下部署Nginx

一.续Centos7下部署Node,Nginx安装部署: Nginx选择安装的是编译版(附下载地址:https://nginx.org/download/),根据自己的系统环境选择. 1.进入保存下载文件的路径,cd进入文件保存路径,命令: cd /usr/local/src 2.下载文件,我这选择最新版本nginx-1.13.11.命令: wget https://nginx.org/download/nginx-1.13.11.tar.gz 3.解压到特定文件夹下,进行解压,执行命令: ta

centos7下部署nginx+supervisor+netcore2.1服务器环境

由于工作需要,自己部署了一台centos7服务器,用于部署netcore2.1的服务器环境,涉及到的相关内容主要有以下几点 netcore2.1版本的部署调试 supervisor守护进程的部署 nginx反向代理部署以及简单的负载均衡示例 其他用到的相关软件有vs2017,xshell,xftp 内容比较基础,适合刚刚接触的新手,高手就忽略吧 一.netcore2.1版本部署 首先需要一台服务器,当然用虚拟机也可以,我这里是自己买了一台阿里云服务器,最低配置的,价格便宜,用xshell远程链接

centos7 搭建keepalived+Nginx+tomcat

准备1台 192.168.2.224  安装Nginx,2台安装tomcat   192.168.2.222   192.168.2.223 1.安装Nginx: 上传pcre-8.36.tar.gz.zlib-1.2.8.tar.gz到服务器 下载地址:pcre-8.36.tar.gz             https://o3cex9zsl.qnssl.com/libs/nginx/pcre-8.36.tar.gz zlib-1.2.8.tar.gz            https://