一、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会产生动静分离的效果