Linux下搭建Nginx+Keepalived+Redis集群+Tomcat实现高可用WEB负载均衡、session共享集群(软件安装)
1、序
最近由于客户要求要对网站进行搭建集群,机智的我选择来博客转一转,参考了大量的作者的文章,写下此篇博客。
2、概述
本文采用Nginx+Keepalived+Redis集群+Tomcat来实现WEB高可用、负载均衡、session共享的模式,其中Nginx用来做负载均衡,Keepalived用来监控Nginx、主备心跳同步、提供虚拟IP(VIP),Redis集群作session共享,Tomcat发布web服务。
3、准备工作
nginx-1.19.2、keepalived-1.2.13、redis-5.0.9 、tomcat7、两台 CentOS 6.5虚拟机,为了搭建redis集群我们在两台虚拟机上模拟6个redis节点(三主三从高可用redis集群)。
主机 | 备机 |
---|---|
192.168.10.13 | 192.168.10.14 |
JDK | JDK |
tomcat-1 | tomcat-2 |
nginx-1 | nginx-2 |
keepalived-1 | keepalived-2 |
redis | redis |
4、软件安装
4.1、JDK安装
在安装JDK前,最好检测下是否安装了openjdk (rpm -qa | grep jdk),若有,最好卸载(rpm -e openjdk*)。
下载Linux环境下的jdk1.8,根据自己系统的情况自行选择下载,这里只说明Linux-x64选择红色框起部分的两种方式。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
4.1.1 安装
(1)RPM安装
将下载好的.rpm安装包上传到服务器。
rpm -ivh jdk-8u271-linux-x64.rpm
(2)压缩包安装
将下载好的.tar.gz安装包上传到服务器。
tar -zxvf jdk-8u271-linux-x64.tar.gz -C /usr/java/
4.1.2 配置环境变量
修改/etc/profile文件,添加如下内容(JAVA_HOME的路径请查看具体目录下文件夹的名称)
echo 'export JAVA_HOME=/usr/java/jdk1.8.0_271-amd64' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
source /etc/profile
4.1.3 检验安装是否成功
java -version
返回如下信息表示安装成功
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b12)
Java HotSpot(TM) 64-Bit Server VM (build 23.271-b12, mixed mode)
4.2、NGINX安装
进入官网下载Linux所需要的版本(以tar.gz结尾的安装包)PS:推荐下载最新版本,避免有安全漏洞
http://nginx.org/download/
4.2.1 安装依赖
(1)YUM安装(可联网)
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
(2)RPM安装(无法联网)
将相关.rpm安装包上传至服务器
执行安装命令
rpm -Uvh *.rpm --nodeps --force
(3)源码编译安装(无法联网、确保服务器已安装gcc、g++开发库)
下载prce 、zlib、openssl源码包
pcre安装,执行以下命令
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42/
./configure && make && make install
zlib安装,执行以下命令
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42/
./configure && make && make install
openssl安装,执行以下命令
注:有的机器上会有openssl,但通常是1.0的版本,源码编译里的是1.1的版本,安装并不冲突。
tar -zxvf openssl-1.1.0h.tar.gz
cd openssl-1.1.0h/
./config && make && make install
4.2.2 源码编译安装NGINX(安装到/home/nginx/)
tar -zxvf nginx-1.19.2.tar.gz
cd nginx-1.19.2/
./configure --prefix=/home/nginx --with-http_ssl_module \
--with-http_realip_module --with-http_addition_module \
--with-http_sub_module --with-http_dav_module \
--with-http_flv_module --with-http_mp4_module \
--with-http_gunzip_module --with-http_gzip_static_module \
--with-http_random_index_module --with-http_secure_link_module \
--with-http_stub_status_module --with-http_auth_request_module \
--with-threads --with-stream --with-stream_ssl_module \
--with-http_slice_module \
--with-file-aio --with-http_v2_module
make && make install
4.2.3 启动NGINX
cd /home/nginx/sbin
./nginx
4.2.4 访问NGINX
默认端口就是80,所以浏览器访问IP出现如下界面证明安装成功
4.3、Keepalived安装
4.3.1 安装
(1) YUM安装
yum -y install keepalived
(2) 源码编译安装
官网下载keepalived的最新版本,编译安装
tar xvf keepalived-2.0.7.tar.gz
cd keepalived-2.0.7
./configure --prefix=/
make && make install
4.3.2 启动
service keepalived start
提示证明安装成功
正在启动keepalived: [确定]
4.4、redis安装
下载redis
4.4.1 安装依赖
yum -y install gcc automake autoconf libtool make
4.4.2 源码编译安装
tar xvzf redis-5.0.9.tar.gz
cd redis-5.0.9
make PREFIX=/home/redis install
cp *.conf /home/redis/
4.4.3 启动
cd /home/redis/
./bin/redis-server redis.conf
4.4.3 验证是否启动成功
./bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379>set test 123
OK//提示OK证明启动成功
4.5、tomcat安装
下载apache-tomcat
上传至服务器,解压即可使用
具体集群配置请参考。1