Centos7离线搭建高可用的Web集群服务:Keepalived+Nginx+Tomcat

Centos7离线搭建高可用的Web集群服务:Keepalived+Nginx+Tomcat

参考资料:https://blog.csdn.net/apei830/article/details/78685855

环境准备

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

浏览器访问http://192.168.191.10

posted @ 2020-08-18 19:39  galaxyljk  阅读(259)  评论(0)    收藏  举报