前言
LNMT动静分离是指在LNMT架构中使用动静分离技术,将动态请求和静态请求分开处理和分发,以提高性能和可扩展性。这种架构使用Nginx作为反向代理服务器,将静态资源直接由Nginx服务器提供,而将动态请求转发给后端的Tomcat应用服务器进行处理。
Keepalived是一种开源的高可用性解决方案,可以用于实现服务器之间的故障转移和负载均衡。它使用虚拟路由冗余协议(Virtual Router Redundancy Protocol,VRRP)来监控服务器的状态,并自动切换到备用服务器以实现高可用性。
当将LNMT动静分离架构与Keepalived结合使用时,通常是在Nginx服务器部署Keepalived以实现高可用性。可以部署多个Nginx服务器,并使用Keepalived来监控它们的状态。如果主要的Nginx服务器发生故障或不可用,Keepalived会自动将IP地址转移到备用服务器,确保服务的连续性。
此组合架构提供了高可用性和负载均衡的好处。即使其中一个Nginx服务器发生故障,Keepalived会自动将请求转发到其他可用的Nginx服务器,以确保服务的持续性和高性能。同时,LNMT动静分离架构通过将静态资源由Nginx直接提供,减轻了后端Tomcat服务器的负载,并提高了静态资源的访问速度。
一、实验拓扑
本次实验采用的nginx结合Tomcat来实现动静分离,负载均衡;使用nfs服务来为Tomcat共享目录
在调度器NGINX上配置keepalived来提高可用性
二、配置tomcat
##两台tomcat服务器先进行如下步骤 : ##解压/建立软连接 tar xf apache-tomcat-8.5.16.tar.gz mv apache-tomcat-8.5.16 /usr/local/tomcat ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/catdown ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/catup ###创建挂载目录 /usr/local/tomcat mkdir webapps1 ###修改tomcat的访问目录 vim /usr/local/tomcat/conf/server.xml ###修改host字段插入 <Context path="" docBase="/usr/local/tomcat/webapps1" />
三、nfs配置
安装及配置
##安装nfs服务 yum -y install nfs ##创建共享目录 mkdir /opt/web1 mkdir /opt/web2 ##配置nfs的配置文件 vim /etc/exports ##插入 /opt/web1 192.168.115.136/24(rw,sync,no_root_squash) /opt/web2 192.168.115.140/24(rw,sync,no_root_squash) ##让他生效 exportfs -arv ##启动nfs systemctl start nfs
回到两台Tomcat挂载共享目录
###查看可挂载的目录 showmount -e 192.168.115.131 ###挂载到webapps1 mount 192.168.115.131:/opt/web1 /usr/local/tomcat/webapps1 ##查看挂载情况 df ###分别书写测试页面 echo tomcat1 > webapps1/index.jsp echo tomcat2 > webapps1/index.jsp ##启动Tomcat catup ##查看端口、 netstat -anput |grep 8080
测试页面
四、配置NGINX
安装NGINX
###安装 yum -y install epel-release.noarch yum -y install nginx ##修改配置文件 vim /etc/nignx/nginx.conf ##在http字段插入 upstream tomcat { server 192.168.115.136:8080; server 192.168.115.140:8080; } ##server字段插入 location ~ \.jsp$ { proxy_pass http://tomcat; proxy_set_header Host $host; } location / { root /usr/share/nginx/html; index index.html; } ##启动NGINX
访问2台调度器
测试动静分离
五、配置NGINX的双机热备
安装keepalived
##安装 yum -y install keepalived ##配置 vim /etc/keepalived/keepalived.conf ############################################################ ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL ###从的编号要改动一下 LVS_DEVEL1 vrrp_skip_check_adv_addr #vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER ###从改为BACKUP interface ens33 ###网卡名 virtual_router_id 51 priority 100 ###从的优先级要比主低 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.115.200 ###VIP用来访问的虚拟IP } } virtual_server 192.168.115.200 8080 { ###vip对应的真是IP 在下面 delay_loop 6 lb_algo rr persistence_timeout 50 protocol TCP real_server 192.168.115.136 8080 { ###这是Tomcat服务器的IP weight 1 HTTP_GET { url { path /testurl/test.jsp } url { path /testurl2/test.jsp } url { path /testurl3/test.jsp } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.115.140 8080 { ###这是Tomcat服务器的IP weight 1 HTTP_GET { url { path /testurl/test.jsp } url { path /testurl2/test.jsp } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
启动keepalived
systemctl start keepalived
查看主的IP说明keepalived生效了
VIP页面访问测试
静态页面
动态页面
六、验证双机热备
模拟调度器主宕机init 0,直接给他关机,使用调度器备访问
1、查看调度器备的IP,ip漂移说明keepalived生效
2、页面访问测试
动态页面
正常访问,试验成功。