nginx+keepalived 离线安装

最近在离线环境下做 nginx+keepalived 实现高可用的负载均衡,离线环境下安装真的是十分费劲。以下就以centos7为例安装 keepalived-1.2.18 + nginx1.14.1。

1、我们需要nginx的rpm包,在官网下载 http://nginx.org/en/download.html 。不了解 rpm 的同学可以自行百度。

2、安装keepalived服务需要用的gcc ,所以需要准备gcc的包 ,在http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ 下载如下包

3、准备 keepalived的包  http://www.keepalived.org/download.html

4、直接下载我整理好的 keepalived-1.2.18 + nginx1.14.1 + gcc

当三个包准备好了就可以安装啦,我在虚拟机上克隆了3台虚拟机 分别是

虚拟IP 真实IP nginx端口 主从
192.168.71.130 192.168.71.128 80 MASTER
192.168.71.130 192.168.71.129 80 BACKUP

一、安装nginx

 xshell root用户 连接 192.168.71.128  执行以下操作

1 、在root目录新建 nginx_rpm,将nginx安装包用xftp传入

2、rpm -ivh 安装rpm包

3、 whereis nginx 显示nginx 安装位置(/usr/sbin/nginx 启动文件;/etc/nginx 配置目录)

4、启动nginx

5、浏览器验证

6、若本机浏览器无法访问,但本机可以ping通xuni虚拟机IP,需要开启防火墙的80端口,或者关闭防火墙

7、在 192.168.8.129 中按照同样的步骤按照nginx。

二、安装keepalived

1、192.168.71.128 root目录下新建keepalived_filewenj文件夹,传入 keepalived 安装包 ; 并解压安装包。

2、验证 gcc 是否存在  (gcc -v );若不存在安装gcc:

 2.1 上传gcc rpm文件

 

2.2 安装rpm包

2.3 验证 gcc 安装

3、进入 keepalived目录编译

4、将keepalived安装成Linux系统服务
因为没有使用keepalived的默认路径安装(默认是/usr/local),安装完成后,需要手动复制默认的配置文件到默认路径
# mkdir /etc/keepalived
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
复制keepalived服务脚本到默认的地址
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# ln -s /usr/local/sbin/keepalived /usr/sbin/
# ln -s /usr/local/keepalived/sbin/keepalived /sbin/

最后一个连接不上,提示文件存在,可先删除,在连接


5、设置keepalived 开机启动


 

6、修改keepalived配置文件 /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id lb01 ## 标识本节点的字条串
}

## keepalived 会定时执行脚本,nginx_check.sh
vrrp_script chk_nginx { 
   script "/etc/keepalived/nginx_check.sh" interval 2  ## 检测时间间隔
   weight -20 ## 如果条件成立,权重-20
} 


vrrp_instance VI_1 {
    state MASTER ## 主节点为 MASTER,对应的备份节点为 BACKUP
    interface ens33 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同 在/etc/sysconfig/network-scripts/ 下存在 ifcfg-ens33文件(有的是ifcfg-eth0)
    virtual_router_id 130 ## 虚拟路由的 ID 号,两个节点设置必须一样,可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址
	mcast_src_ip 192.168.71.128  ## 本机IP
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    
    ## 将 track_script 块加入 instance 配置块
    track_script { 
	chk_nginx ## 执行 Nginx 监控的服务
    } 
    
    ## 虚拟 IP 池, 两个节点设置必须一样
    virtual_ipaddress {
        192.168.71.130 ## 虚拟 ip,可以定义多个
    }
}

7、在 etc/keepalived目录下添加 nginx_check.sh

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

我是自接替换的

8、启动keepalived
# service keepalived start
出现以下,代表启动成功
Starting keepalived: [ OK ]

执行ip add命令可查看虚拟IP(192.168.71.130) 已经挂上

关闭keepalived
# service keepalived stop

执行ip add命令可查看虚拟IP(192.168.71.130) 已经消失

9、在192.168.71.129上同样步骤安装 keepalived 并启动。配置文件如下

10、访问192.168.71.130 (注意开启80端口)

测试就不写了,主要看以下两篇博客搭建

https://www.jianshu.com/p/da26df4f7d60

http://blog.51cto.com/superpcm/2095395

发布了73 篇原创文章 · 获赞 78 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/SHIYUN123zw/article/details/84780485