【集群】LVS+keepalived高可用、nginx+Tomcat动静分离、nfs共享存储(上)

简介: 文章目录前言一、LVS+keepalived1.0 架构概况

一、LVS+keepalived

1.0 架构概况

作用 IP地址 安装服务
负载均衡器(主) 192.168.13.10 ipvsadm/keepalived
负载均衡器(备) 192.168.13.20 ipvsadm/keepalived
节点服务器1 192.168.13.30 nginx/Tomcat
节点服务器2 192.168.13.40 nginx/Tomcat
NFS共享存储 192.168.13.50 rpcbind/nfs

1.1 环境配置

  • 任何实验,如果你不想花几个小时排障的话,第一步:必须是关闭防火墙
  • systemctl stop firewalld
  • sentenceforce 0

1.2 NFS共享存储

systemctl stop firewalld
setenforce 0
yum install -y rpcbind                      #安装rpcbind服务,nfs启动的基础环境
mkdir -p /opt/nfs/web1 /opt/nfs/web2              #编写共享目录内容,做测试用
echo '这是192.168.13.30的网页'>/opt/nfs/web1/index.html
echo '这是192.168.13.40的网页'>/opt/nfs/web2/index.html
vim /etc/exports                        #配置配置共享目录权限(可读可写,可修改目录,root用户不降权)
/opt/nfs/web1 192.168.13.0/24(rw,sync,no_root_squash)
/opt/nfs/web2 192.168.13.0/24(rw,sync,no_root_squash)
systemctl start rpcbind.service                 #必须先启动rpcbind服务
systemctl start nfs                       #再启动nfs服务
showmount -e

1.3 节点服务器(nginx+Tomcat动静分离)

1.3.0 配置挂载/网络环境

mount 192.168.13.50:/opt/nfs/web1 /usr/local/nginx/html/  #挂载nfs共享存储的内容
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0                    #通过配置虚拟网卡,产生VIP地址
vim ifcfg-lo:0
  DEVICE=lo:0
  IPADDR=192.168.13.100
  NETMASK=255.255.255.255
  ONBOOT=yes
ifup lo:0                         #启动该虚拟网卡,生成VIP地址:192.168.13.100
vim /etc/rc.local                     #将VIP地址添加至配置文件中,并设置为开机自动添加
  route add -host 192.168.13.100 dev lo:0
chmod +x /etc/rc.d/rc.local                 #赋予脚本权限
#1:只响应目的IP地址为物理网卡地址的arp请求
#2:arp请求的源IP必须和接收网卡同网段
vim /etc/sysctl.conf                  
  net.ipv4.conf.lo.arp_ignore = 1 
  net.ipv4.conf.lo.arp_announce = 2
  net.ipv4.conf.all.arp_ignore = 1
  net.ipv4.conf.all.arp_announce = 2
sysctl -p                         #刷新内存中的配置(立即生效)

1.3.1 编译安装nginx服务

yum -y install pcre-devel zlib-devel make         #安装编译环境
useradd -M -s /sbin/nologin nginx             #创建专门管理nginx的系统用户
tar xf /opt/nginx-1.12.0.tar.gz -C /opt/          #解压nginx源码包
cd /opt/nginx-1.12.0/                   #进入解压后的目录,对nginx的模块进行配置
./configure \
--prefix=/usr/local/nginx \                 #配置nginx安装路径
--user=nginx \                        #配置nginx管理用户
--group=nginx \                       #配置nginx所属组
--with-http_stub_status_module \              #监视模块,可以查看目前的连接数等一些信息(非核心模块)
--with-stream                       #四层反向代理模块(想启动四层代理,必须安装该模块)
make -j 4 && make install                 #编译安装nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/      #将nginx命令做软链接,方便后续使用
vim /lib/systemd/system/nginx.service           #将nginx添加到系统服务当中(方便启动/关闭/开机自启)
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service         #赋予nginx服务文件执行权限
systemctl enable --now nginx.service            #设置nginx为开机自启,并立即启动nginx服务
netstat -natp |grep nginx                 #查看nginx是否启动成功
vim /usr/local/nginx/conf/nginx.conf            #设置动静分离内容
  39行:charset utf-8;
  48行插入以下内容:
  location ~ jsp$ {
    proxy_pass http://127.0.0.1:8080;
  }
nginx -t                          #检查语法问题
systemctl restart nginx                   #重启nginx服务


1.3.2 编译安装jdk环境

cd /opt
#安装jdk环境(Tomcat是基于jdk环境运行的)
tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/       #将源码包下载至对应的目录
cat >/etc/profile.d/jdk.sh<<EOF               #设置jdk相关的环境变量(以前有解释过)
JAVA_HOME=/usr/local/jdk1.8.0_91
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
EOF
source /etc/profile.d/jdk.sh                #刷新环境变量配置文件
java -version                       #显示的版本应该与源码包的版本一致(博主是:1.8.0_131)

1.3.3 编译安装Tomcat

cd /opt
#下载Tomcat源码包
tar xf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
mkdir -p /usr/local/tomcat/webapps/test
cd /usr/local/tomcat/webapps/test
#Tomcat动态主页配置(不需要精通,只需要简单的配置,能进行检测即可)
cat >index.jsp<<EOF
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
<body>
<% out.println("动态页面2,this is web 2");%>
</head>
</body>
</html>
EOF
#修改Tomcat动态页面路径指向(不需要精通,只需要简单的配置,能进行检测即可)
sed -i '148,149d' /usr/local/tomcat/conf/server.xml
sed -i '148i <Host name="localhost"  appBase="webapps"\n  unpackWARs="true" autoDeploy="true"\n  xmlValidation="false" xmlNamespaceAware="false">' /usr/local/tomcat/conf/server.xml
sed -i '151i <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />' /usr/local/tomcat/conf/server.xml
#唯一要注意的就是151行,这行是路径指向,其余的都是默认配置,复制粘贴即可
/usr/local/tomcat/bin/startup.sh            #启动Tomcat服务
#此时网页访问http://192.168.13.30和http://192.168.13.30/index.jsp会产生动静分离的效果


相关文章
|
25天前
|
存储 Kubernetes 安全
k8s存储类型:emptyDir、hostPath、nfs、pvc及存储类storageclass的静态/动态创建pv
Kubernetes提供了多种存储类型,满足不同的应用需求。`emptyDir`和 `hostPath`适用于临时和宿主机存储需求,`nfs`适用于共享存储,`PersistentVolumeClaim`和 `StorageClass`实现了持久存储的灵活管理。通过理解和配置这些存储类型,可以有效提升Kubernetes集群的存储管理能力。
49 13
|
6月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
178 0
|
6月前
|
存储 Kubernetes 容器
k8s创建NFS动态存储
k8s创建NFS动态存储
|
6月前
|
运维 负载均衡 监控
Nginx加Keepalived实现高可用
使用Nginx和Keepalived来实现高可用性的方案,对于确保关键服务的稳定性和可靠性来说是非常有效的。此配置涉及多个步骤,包括各个服务的安装、设置及测试,目标是在主服务器故障时能无缝切换,以确保服务的持续可用。正确的配置和充分的测试是实现高可用性的保证,这也要求管理员对这些工具和它们背后的原理有深入的了解。
122 1
|
7月前
|
Java Scala C++
云计算存储问题之中心NFS服务器如何解决
云计算存储问题之中心NFS服务器如何解决
|
7月前
|
存储 云计算
云计算存储问题之NFS与其他文件共享协议共同点如何解决
云计算存储问题之NFS与其他文件共享协议共同点如何解决
|
6月前
|
存储 Kubernetes 数据安全/隐私保护
在K8S中,如果后端nfs存储的ip发生变化如何解决?
在K8S中,如果后端nfs存储的ip发生变化如何解决?
|
6月前
|
存储 Kubernetes 调度
使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(NFS网络存储)
使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(NFS网络存储)
85 0
|
4月前
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
337 7
|
4月前
|
存储 算法 应用服务中间件
Tomcat如何配置JKS证书?
【10月更文挑战第2天】Tomcat如何配置JKS证书?
553 4