Centos7离线搭建高可用的Web集群服务:Keepalived+Nginx+Tomcat
参考资料:
环境准备
keepalived-2.0.20.tar.gz
apache-tomcat-8.5.57.tar.gz
nginx-1.18.0.tar.gz
jdk-8u202-linux-x64.tar.gz
| 虚拟机 | IP | 说明 |
|---|---|---|
| Server1 | 192.168.191.200 | Master |
| Server2 | 192.168.191.201 | Backup |
安装Jdk
下载并解压文件
tar -zvxf jdk-8u202-linux-x64.tar.gz
编辑/etc/profile文件
vim /etc/profile
配置环境变量
export JAVA_HOME=/usr/local/work/jdk1.8.0_202
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使配置修改生效
source /etc/profile
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
安装Tomcat
下载并解压Tomcat
tar -zxvf apache-tomcat-8.5.57.tar.gz
修改ROOT/index.jsp页面,在页面上加入tomcat的IP地址,并打印出request header中的X-NGINX值,这个值我们将在后面配置NGINX时传入
<div id="asf-box">
<h1>${pageContext.servletContext.serverInfo}(192.168.191.200)<%=request.getHeader("X-NGINX")%></h1>
</div>
启动tomcat,在浏览器中正确访问http://192.168.191.200:8080/和http://192.168.191.201:8080/
安装Nginx
挂载iso镜像文件,进入Packages目录下
mount /dev/cdrom /media/
cd /media/Packages/
安装gcc g++的依赖库,
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-39.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-1127.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-307.el7.1.x86_64.rpm
rpm -ivh glibc-devel-2.17-307.el7.1.x86_64.rpm
rpm -ivh gcc-4.8.5-39.el7.x86_64.rpm
rpm -ivh libstdc++-devel-4.8.5-39.el7.x86_64.rpm
rpm -ivh gcc-c++-4.8.5-39.el7.x86_64.rpm
安装pcre依赖库
rpm -ivh pcre-8.32-17.el7.x86_64.rpm
rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
安装zlib依赖库
rpm -ivh zlib-1.2.7-18.el7.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
安装nginx
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0/
./configure --prefix=/usr/local/work/nginx
make
make install
配置nginx反向代理,进入nginx目录
vim conf/nginx.conf
在Master(200)中设置proxy_set_header X-NGINX “NGINX-1”
在Backup(201)中设置proxy_set_header X-NGINX “NGINX-2”
upstream tomcat {
server 192.168.191.200:8080 weight=1;
server 192.168.191.201:8080 weight=1;
}
server {
location / {
proxy_pass http://tomcat;
proxy_set_header X-NGINX "NGINX-1";
}
#……其他省略
}
启动Nginx
./sbin/nginx
已经启动则执行reload命令,使配置生效
./sbin/nginx -s reload
浏览器中正确访问http://192.168.191.200/和http://192.168.191.201/
安装Keepalived
安装ssl依赖库
rpm -ivh keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm
rpm -ivh libcom_err-devel-1.42.9-17.el7.x86_64.rpm
rpm -ivh libkadm5-1.15.1-46.el7.x86_64.rpm
rpm -ivh libsepol-devel-2.5-10.el7.x86_64.rpm
rpm -ivh libselinux-devel-2.5-15.el7.x86_64.rpm
rpm -ivh libverto-devel-0.2.5-4.el7.x86_64.rpm
rpm -ivh krb5-devel-1.15.1-46.el7.x86_64.rpm
rpm -ivh openssl-devel-1.0.2k-19.el7.x86_64.rpm
解压Keepalived
tar -zxvf keepalived-2.0.20.tar.gz
安装Keepalived
./configure --prefix=/usr/local/work/keepalived
make && make install
配置Keepalived
mkdir /etc/keepalived
vim /etc/keepalived/keepalived.conf
Master(200)配置
global_defs {
notification_email {
}
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
mcast_src_ip 192.168.191.200
priority 250
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.191.10
}
}
Backup(201)配置
global_defs {
notification_email {
}
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 51
mcast_src_ip 192.168.191.201
priority 240
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.191.10
}
}
启动Keepalived服务
systemctl start keepalived.service
浏览器访问
浙公网安备 33010602011771号