多域名绑定Apabche2.4+Tomcat8.5+mod_jk负载均衡配置

环境:
云服务器两台:192.168.0.2
192.168.0.3
系统:centos7
版本:Apache2.4
Tomcat8.5
Apache安装在192.168.0.2上,并且使用mod_jk配置负载均衡,
Apache绑定域名a.com,和b.com,a.com作为官网,php开发,
b.com作为api接口域名,给app或前端页面调用接口。

Tomcat安装分别安装在192.168.0.2和192.168.0.3上。
这里不介绍软件安装方法,只介绍配置方法。
需求:如图:
在这里插入图片描述
现需要

  1. 访问a.com后,不需要tomcat处理,只需要请求到apache绑定的a.com的目录下的资源文件即可。也就是访问a.com,直接请求192.168.0.2上的a.com目录文件。
  2. 访问b.com后需要通过负载均衡分配给tomcat1和tomcat2处理。

Apache配置

本文apache为yum安装

vim /etc/httpd/conf/httpd.conf

在文件末尾添加上绑定的域名信息
绑定域名a.com

NameVirtualHost *80
<VirtualHost *:80>
 DocumentRoot /var/www/html/a.com
 ServerName a.com
 DirectoryIndex index.html index.htm index.jsp
</VirtualHost>

绑定域名b.com

<VirtualHost *:80>
 DocumentRoot /var/www/html/b.com
 ServerName b.com
 DirectoryIndex index.html index.htm index.jsp
 JkMount  /* controller  #重点配置 
 JkMount  /jkstatus stat #重点配置
</VirtualHost>

JkMount /* controller 意思是将此域名是所有请求都交由 controller控制器管理
JkMount /jkstatus 将此域名下的所有/jkstatus所有路径都交由stat控制器管理
这里的controller,stat控制器即是下文中workers.properties 配置的控制器。

如果不设置,那么b.com的访问跟会a.com访问一样会直接请求html/b.com的目录文件了,那么负载均衡将无法转发任何流量。

配置负载均衡

apache2.4的httpd.conf文件末尾已自动加载conf.d下面的所有配置文件,所以我们只需要在这个目录新建配置文件即可,无需再去httpd.conf添加引用
在这里插入图片描述

新建mod_jk.conf
vim  /etc/httpd/conf.d/mod_jk.conf 
LoadModule jk_module modules/mod_jk.so  #编译好的mod_jk.so文件,编译好会自动在modules目录生成
JkWorkersFile conf.d/workers.properties      #加载负载均衡配置文件
JkMountFile conf.d/uriworkersmap.properties  #加载负载均衡忽略文件
JkLogFile logs/mod_jk.log          #设置日志路径
JkLogLevel info                          #设置日志级别  info debug  warn
新建workers.properties
vim /etc/httpd/conf.d/workers.properties 
#work 控制器
worker.list = controller,stat
#========tomcat1========
worker.tomcat1.port=8009  							#ajp13端口号,在tomcat下server.xml配置,默认 8009 默认无需修改
worker.tomcat1.host=192.168.0.2 				    #tomcat的主机地址
worker.tomcat1.type=ajp13  							#协议类型 
worker.tomcat1.lbfactor=1						    # 值越高,分得的请求越多。
#========tomcat2========
worker.tomcat2.port=8009
worker.tomcat2.host=192.168.0.3
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#========controller,负载均衡控制器========
worker.controller.type=lb									 #负载均衡控制器类型,lbfactor是负载平衡因数(Load Balance Factor)
worker.controller.balanced_workers=tomcat1,tomcat2 			#指定分担请求的tomcat列表
# 粘性session(默认是打开的) 
# 当该属性值=true(或1)时,代表session是粘性的,
worker.controller.sticky_session=true
#错误发生时的重试次数
worker.retries=3
# 设置用于负载均衡的server的session可否共享
worker.controller.sticky_session_force=false
worker.stat.type=status #负载均衡状态查看设置

worker.controller.sticky_session,设置为1或true使用粘着session,设置为0或false不使用粘着session。如果sticky_session设为true时,建议sticky_session_force设为false,

此参数表明如果集群中某台服务器在多次请求没有响应后,将转发当前的请求到其它服务器上处理;sticky_session=false时,影响比较大,会导致转发到其它服务器上的请求,找不到原来的session,

所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。sticky_session、sticky_session_force的默认值分别为true,false。

sticky_sessionsticky_session_force含义
truefalseSESSION会复制,有粘性
truetrueSESSION不复制,有粘性
falsefalseSESSION会复制,无粘性
falsetrueSESSION会复制,无粘性
新建
vim /etc/httpd/conf.d/uriworkersmap.properties
/*=controller
/jkstatus=stat
!/*.jpg=controller
!/*.gif=controller
!/*.png=controller
!/*.bmp=controller
!/*.html=controller
!/*.htm=controller
!/*.css=controller
!/*.js=controller

!/*.jpg=controller 表示controller控制器放行jpg文件
/jkstatus=stat 表示/jkstatus路径又stat控制器控制
jkstatus目录是查看负载均衡的状态的页面,如果不放行将无法查看此页面

Tomcat设置

编辑配置文件

在这里插入图片描述

vim /usr/tomcat/apache-tomcat-8.5.31/conf/server.xml 

编辑Engine标签,添加上jvmRoute=“tomcat1”,tomcat1即workers.properties 中的tomcat名称。
两个tomcat都要修改,

192.168.0.2 jvmRoute="tomcat1"
192.168.0.3 jvmRoute="tomcat2"

测试

偷懒复制了个页面,
在两个tomcat的运行目录下新建test.jsp文件;

test.jsp

vim /usr/tomcat/apache-tomcat-8.5.31/webapps/test.jsp

<%@ page language="java" %>
<html>
 <head><title>Tomcat1 <!-- (tomcat2改为2)--></title></head>
 <body>
  <h1><font color="red">Tomcat1  <!-- (tomcat2改为2)--></h1>
  <table align="centre" border="1">
   <tr>
    <td>Session ID</td>
  <% session.setAttribute("abc","abc"); %>
    <td><%= session.getId() %></td>
   </tr>
   <tr>
    <td>Created on</td>
    <td><%= session.getCreationTime() %></td>
   </tr>
  </table>
 </body>
</html>

访问a.com:正常显示a.com的网站类容
在这里插入图片描述

访问b.com/test.jsp
在这里插入图片描述
由于启用了session,所以刷新并不会改变处理的tomcat服务器,需要用浏览器的隐身模式访问。
关掉后重新访问:
在这里插入图片描述

可以看到b.com所有jsp的动态请求,都会交给tomcat1或者tomcat2处理。

END

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值