【集群】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会产生动静分离的效果


相关文章
|
2月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
94 0
|
2月前
|
负载均衡 前端开发 应用服务中间件
FastDFS+Nginx+fastdfs-nginx-module集群搭建
FastDFS+Nginx+fastdfs-nginx-module集群搭建
|
2月前
|
运维 负载均衡 监控
Nginx加Keepalived实现高可用
使用Nginx和Keepalived来实现高可用性的方案,对于确保关键服务的稳定性和可靠性来说是非常有效的。此配置涉及多个步骤,包括各个服务的安装、设置及测试,目标是在主服务器故障时能无缝切换,以确保服务的持续可用。正确的配置和充分的测试是实现高可用性的保证,这也要求管理员对这些工具和它们背后的原理有深入的了解。
59 1
|
2月前
|
负载均衡 监控 应用服务中间件
在Linux中,lvs/nginx/haproxy 优缺点?
在Linux中,lvs/nginx/haproxy 优缺点?
|
2月前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
50 5
|
2月前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
113 5
|
2月前
|
应用服务中间件 Nacos 数据库
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
58 1
|
2月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
83 4
|
2月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
87 3
|
3月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。