Nginx 配置实例-配置高可用

Posted 小学弟-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 配置实例-配置高可用相关的知识,希望对你有一定的参考价值。

 

 

1. 实现效果

2. 两台机器 nginx 的安装

2.1 192.168.25.120 中 nginx 的安装

2.1.1 安装 pcre 依赖

su - root							// 切换到 root 用户

tar zxvf pcre-8.37.tar.gz			// 解压 pcre 安装包	

cd pcre-8.37						// 进入 pcre-8.37 目录	
./configure							// 配置 pcre-8.37 
make && make install				// 编译安装 pcre-8.37

pcre-config --version				// pcre 安装成功后,查看其版本号
 

 

2.1.2 安装其他依赖

su - root							// 切换到 root 用户

// 安装其他依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
 

 

2.1.3 Nginx 的安装

su - root							// 切换到 root 用户

tar zxvf nginx-1.12.2.tar.gz		// 解压 nginx-1.12.2.tar.gz 安装包

cd nginx-1.12.2						// 进入 nginx-1.12.2 目录
./configure							// 配置 nginx-1.12.2
make && make install				// 编译安装 nginx-1.12.2
 

 

2.1.4 验证

/usr/local/nginx/sbin/nginx				// 启动 nginx
/usr/local/nginx/sbin/nginx -s stop		// 停止 nginx
ps -ef | grep nginx						// 查看 nginx 进程状态
 

 

启动 nginx 之后,浏览器访问 nginx 所在主机的 IP 即端口,此处为 192.168.25.120:80(80为默认短裤,访问时可省略),显示页面如下:
技术图片

2.2 192.168.25.121 中 nginx 的安装

2.2.1 安装 pcre 依赖

su - root							// 切换到 root 用户

tar zxvf pcre-8.37.tar.gz			// 解压 pcre 安装包	

cd pcre-8.37						// 进入 pcre-8.37 目录	
./configure							// 配置 pcre-8.37 
make && make install				// 编译安装 pcre-8.37

pcre-config --version				// pcre 安装成功后,查看其版本号
 

 

2.2.2 安装其他依赖

su - root							// 切换到 root 用户

// 安装其他依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
 

 

2.2.3 Nginx 的安装

su - root							// 切换到 root 用户

tar zxvf nginx-1.12.2.tar.gz		// 解压 nginx-1.12.2.tar.gz 安装包

cd nginx-1.12.2						// 进入 nginx-1.12.2 目录
./configure							// 配置 nginx-1.12.2
make && make install				// 编译安装 nginx-1.12.2

 

2.2.4 验证

/usr/local/nginx/sbin/nginx				// 启动 nginx
/usr/local/nginx/sbin/nginx -s stop		// 停止 nginx
ps -ef | grep nginx						// 查看 nginx 进程状态
 

 

启动 nginx 之后,浏览器访问 nginx 所在主机的 IP 即端口,此处为 192.168.25.120:80(80为默认短裤,访问时可省略),显示页面如下:
技术图片

3. 两台机器 keepalived 的安装

3.1 192.168.25.120 中 keepalived 的安装

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

# 使用 yum 命令安装 keepalived
yum install -y keepalived

# 使用 rpm 命令查询 keepalived 的安装包
rpm -q -a keepalived
 

 

3.2 192.168.25.121 中 keepalived 的安装

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

# 使用 yum 命令安装 keepalived
yum install -y keepalived

# 使用 rpm 命令查询 keepalived 的安装包
rpm -q -a keepalived
 

 

4. 两台机器高可用的配置

这里采用 192.168.25.120 为主、192.168.25.121 为备的架构,其中 nginx_check.sh 脚本用于检测 nginx 是否存活

4.1 nginx 检测脚本的准备

nginx_check.sh

#!/bin/bash
A=`ps -C nginx ¨Cno-header |wc -l`
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi
 

 

4.2 192.168.25.120 主机的 keepalived 配置文件的修改

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.25.120		# smtp 服务器地址,本机IP
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
    script "/usr/local/nginx/nginx_check.sh"
    interval 2              # 检测脚本执行的间隔
    weight 2
}

vrrp_instance VI_1 {
    state MASTER            # 备份服务器上将 MASTER 改为 BACKUP
    interface eth0          # 网卡
    virtual_router_id 51    # 主、备机的 virtual_router_id 须相同
    priority 90            # 主、备机取不同的优先级,主机值较大,备机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.25.125      # VRRP H 虚拟地址
    }
}

4.3 192.168.25.121 主机的 keepalived 配置文件的修改

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.25.121
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
    script "/usr/local/nginx/nginx_check.sh"
    interval 2              # 检测脚本执行的间隔
    weight 2
}

vrrp_instance VI_1 {
    state MASTER            # 备份服务器上将 MASTER 改为 BACKUP
    interface eth0          # 网卡
    virtual_router_id 51    # 主、备机的 virtual_router_id 须相同
    priority 100            # 主、备机取不同的优先级,主机值较大,备机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.25.125      # VRRP H 虚拟地址
    }
}
 

 

 

5. 验证

5.1 启动 keepalived

# 启动 keepalived
systemctl start keepalived.service
 

 

5.2 测试 keepalived 中虚拟 IP 的绑定

浏览器访问 keepalived 中配置的虚拟 IP:192.168.25.125
技术图片
使用 ip 命令查看,发现当前 121 主机的网卡 eth0 已绑定 192.168.25.125 的虚拟 IP

 

以上是关于Nginx 配置实例-配置高可用的主要内容,如果未能解决你的问题,请参考以下文章

配置Keepalived双实例高可用Nginx

Nginx配置一套打通:基本概念命令反向代理负载均衡动静分离高可用

实战 | Nginx+keepalived 实现高可用集群

实战 | Nginx+keepalived 实现高可用集群

nginx内置高可用配置与第三方高可用模块nginx_ustream_check_mudule配置

Nginx学习总结