Nginx 配置实例-配置高可用

时间:2023-03-09 09:54:09
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为默认短裤,访问时可省略),显示页面如下:

Nginx 配置实例-配置高可用

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为默认短裤,访问时可省略),显示页面如下:

Nginx 配置实例-配置高可用

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

Nginx 配置实例-配置高可用

使用 ip 命令查看,发现当前 121 主机的网卡 eth0 已绑定 192.168.25.125 的虚拟 IP