Tomcat 8 和 Apache2.2.25

公司某应用目前只用到一个Tomcat,由于硬件设备有限,考虑到更好的提供服务,所以想用Apache做个负载。好久没关注技术了,Tomcat都到8.0了,而且必须使用jdk1.7以上,下载安装试试新东西,本以为与往常的版本一样(7.0直接跳过了。。),结果启动失败,在Tomcat8的bin目录下出现了一个tomcat-juli.jar加载异常,就是这个jar包导致无法正常启动。

我一般是采用如下方式(存成bat文件):

"D:\JDK\Java\jdk1.6\bin\java.exe" -Xms128m -Xmx384m -jar -Duser.dir="D:\Server\tomcat7.0.25" "D:\Server\tomcat7.0.25\bin\bootstrap.jar" start

既然失败了,那就直接在catalina.bat中加入JAVA_HOME和CATALINA_HOME的方式了,成功启动。

随后,我便想试试看tomcat与apache用jk方式连接有没有变化。在官网下载了jk插件(在tomcat板块下可以找到,要跟你的apache版本对应),配置如下(httpd.conf文件):

#加载jk模块
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so

<IfModule jk_module>
#指定tomcat监听配置文件地址
JkWorkersFile "D:\Servers\apache-tomcat-8.0.0-RC5\conf\workers.properties"
#指定日志存放位置
JkLogFile "D:\Servers\apache-tomcat-8.0.0-RC5\logs\mod_jk2.log" 
#指定日志级别
JkLogLevel info
</IfModule>

<VirtualHost *>
    DocumentRoot htdocs
    ServerName default:80
		JkMount /*.jsp tomcat1 #注意这个tomcat1与workers.properties中的worker.list中的某一个要一致
    ErrorLog logs/default-error_log
</VirtualHost>

配置workers.properties文件

worker.list=tomcat1 #模块版本
worker.tomcat1.port=8009 #工作端口,若没占用则不用修改
worker.tomcat1.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.tomcat1.type=ajp13 #类型
worker.tomcat1.lbfactor=1 #代理数,不用修改

在tomcat中随便新增一个应用,启动tomcat和apache进行测试,成功。

接下来,我们配置第二个tomcat,在server.xml中把ajp的端口号改为8019,默认端口改为8089(请根据自身机器的端口情况进行修改),启动服务验证是否成功。最后,我们需要修改一下workers.properties:

worker.list = tomcat1,tomcat2,loadbalancer
#server 列表
#========tomcat1========
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat1.lbfactor = 1

#========tomcat2========
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.port=8019
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat2.lbfactor = 1
#本tomcat因故障不能接受请求,则转移到tomcat1

#========loadbalancer,负载均衡控制器========
worker.loadbalancer.type=lb
#指定分担请求的tomcat
worker.loadbalancer.balanced_workers=tomcat1,tomcat2   
worker.loadbalancer.sticky_session=1    #实现会话粘连,同时还需要配置各个tomcat中的server.xml中的<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> 还需要进一步验证,目前只是简单的测试了一下。
worker.status.type=status
worker.loadbalancer.recovery_options=3
worker.loadbalancer.socket_keepalive=True
worker.loadbalancer.connection_pool_size=120
worker.loadbalancer.connection_pool_minsize=0
worker.loadbalancer.connection_pool_timeout=20000

别忘了修改httpd.conf中的配置

JkMount /*.jsp tomcat1   修改为  JkMount /*.jsp loadbalancer

--------------------------------------------------------------------------------------------

使用apache自带的负载,做配置如下:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

<VirtualHost *>
    DocumentRoot htdocs
    ServerName default:80
    
    ProxyRequests Off
    ProxyPass / balancer://proxy/ stickysession=jsessionid nofailover=On
    ProxyPassReverse / balancer://proxy/ 

    <Proxy balancer://proxy> 
         BalancerMember http://localhost:8080/  loadfactor=1 
         BalancerMember http://localhost:8089/  loadfactor=10 
    </Proxy>
</VirtualHost>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值