nginx
是代理服务器,可以实现后端应用反向代理和负载均衡等功能,并且nginx
具有应用健康检查功能,将故障节点从负载均衡池中移除,保证了后端应用的高可用。但是,如果nginx
服务器出现问题,则无法对外提供服务。因此,我们必须要考虑到nginx
服务的高可用性,一般采用主-主或者主-备的形式部署nginx
服务。主机负责对外提供服务和后端应用健康检查,备机仅对后端应用进行健康检查。只有当主机出现问题时,备机才会接管工作。
网络规划
IP地址 |
虚拟IP地址 |
节点 |
10.10.10.1 |
20.20.20.1 |
master |
10.10.10.2 |
20.20.20.2 |
backup |
上传安装包
1 2 3 4 5 6 7 8 9 10 11 12
| #创建临时目录 $mkdir -p /home/tmp
#上传安装包 keepalived-1.2.17.tar.gz nginx-1.14.0.tar.gz openssl-1.1.1.tar.gz pcre-8.42.tar.gz zlib-1.2.11.tar.gz
#解压所有安装包 $find . -type f | xargs -I file tar -zxvf file
|
安装nginx
安装zlib依赖库
1 2 3 4 5 6 7 8
| #进入zlib目录 $cd /home/tmp/zlib-1.2.11
#编译 $./configure
#安装 $make && make install
|
安装pcre依赖库
1 2 3 4 5 6 7 8
| #进入pcre目录 $cd /home/tmp/pcre-8.42
#编译 $./configure
#安装 $make && make install
|
升级openssl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #查看openssl版本 $openssl version
#如果低于1.1.1版本,则需要升级 $cd /home/tmp/openssl-1.1.1
#编译 $./config
#安装 $make && make install
#链接升级后的动态库目录/usr/lib64 $ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 $ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
#查看结果 $ls -al /usr/lib64/ | grep -P '(libssl|libcrypto)'
|
安装nginx
1 2 3 4 5 6 7 8
| #进入nginx目录 $cd /home/tmp/nginx-1.14.0
#编译 $./configure --with-http_ssl_module --with-stream
#安装 $make && make install
|
验证nginx
1 2 3 4 5 6 7 8 9 10 11
| #进入nginx目录 $cd /usr/local/nginx/sbin
#启动nginx $./nginx
#如果找不到libpcre.so.1 $export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
#刷新配置 source /etc/profile
|
浏览器打开http://ip:80
安装keepalived
keepalived
的负载均衡框架依赖于Linux
虚拟服务器内核模块IPVS
,如果没有安装IPVS
模块,需要安装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #查看ipvs模块是否安装 $lsmod | grep ip_vs
#创建ipvs安装文件夹 $mkdir -p /usr/local/ipvs/ $cp /usr/src/linux/net/netfilter/ipvs/* /usr/local/ipvs/ $cd /usr/local/ipvs
#编译并安装 $make -C /lib/modules/`uname -f`/build M=/usr/local/ipvs modules
#查看依赖 $modinfo ip_vs.ko
#逐一安装依赖以及ipvs模块 $modprobe ipv6_lib $modprobe nf_conntrack $modprobe libcrc32c $modprobe ip6_tables $modprobe ip_vs.ko $depmod -a $modprobe ip_vs
|
安装keepalived
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #进入keepalived目录 $cd /home/tmp/keepalived-1.2.17
#编译 $./configure --prefix=/usr/local/keepalived
#安装 $make && make install
#创建程序软连接,刷新动态链接库 $ln -s /usr/local/keepalived/sbin/keepalived /sbin/ $ldconfig
#查看keepalived是否安装成功 $keepalived -v
|
将keepalived注册为服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #拷贝配置文件,启动文件,运行参数文件到系统指定目录 $cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived $cp -R /usr/local/keepalived/etc/keepalived /etc/ $cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig
#修改keepalived启动脚本以适配suse,修改第12行与23行 $sed -i "/init.d\/functions/s/^/\. \/lib\/lsb\/init-functions #/g" /etc/init.d/keepalived $sed -i "s/daemon //g" /etc/init.d/keepalived
#设置开启启动 $chkconfig keepalived on
#至此,如果需要启动服务 $service keepalived start
#如果需要停止服务,则执行 $service keepalived stop
|
准备配置
主节点配置