Linux环境下整合Apache和Tomcat

1、前言:

在开发项目的时候,因为目前接触的大多都是一些小项目,都是通过php就完成了后端的开发。但是这次因为需求,采用了java编写后端,因此就设计到了Apache和Tomcat的整合。尽管在整合的过程中遇到了很多问题,也花了一些时间,但是收获也是不少的,这里来总结一下

2、Tomcat和Apache的区别和联系:

关于他们的区别和联系,网上的资料很多,这里就简单的用自己的话概述一下。Apache和Tomcat最重要的区别就是前者负责静态资源的加载,而后者负责动态资源的加载。当客户端向服务器发送一个请求的时候,Apache服务器判断是请求的是静态资源还是动态资源,如果是静态资源,自己就负责加载,如果是动态资源,就交给Tomcat加载。在了解这个的时候,看到一个博主举的一个例子很好,Apache是一个大卡车,那么Tomcat就是一个水桶。卡车上可以装各种各样的东西,但是如果需要装水,则需要放在水桶,再放上车。

3、Tomcat和Apache整合方式:

关于他们的安装这里就不说了,如果是centos,使用免费的yum工具安装是很简单的。这里说一下他们的整合。关于他们的整合方式一共有三种

1. mod_jk

mod_jk 是通过 AJP 协议与 Tomcat 服务器进行通讯的,Tomcat 默认的 AJP Connector 的端口是 8009。JK 本身提供了一个监控以及管理的页面jkstatus,通过 jkstatus 可以监控 JK 目前的工作状态以及对到 tomcat 的连接进行设置;

2. http_proxy

这是利用 Apache 自带的 mod_proxy 模块使用代理技术来连接Tomcat。在配置之前请确保是否使用的是 2.2.x 版本的 Apache 服务器。因为 2.2.x版本对这个模块进行了重写,大大的增强了其功能和稳定性。

3. ajp_proxy

ajp_proxy 连接方式其实跟 http_proxy 方式一样,也是由 mod_proxy 所提供的功能,但是通过 AJP 协议与 Tomcat 服务器进行通讯的,这一点又与mod_jk相同。

从稳定性和可靠性的综合考虑,现在大多数采用的是第一种方式。下面也将采用第一种方式来整合。

使用mod_dk对Tomcat和Apache整合

下载mod_dj.so并放在modules文件夹下,关于mod_dj.so,自己花了很长时间才搞定。最开始通过积分下载的32位的,在启动服务器的时候报错。后来就下载源码进行编译,在编译过程又遇到aclocal丢失现象。为了给读者节约时间,这里就把资源免费提供给大家

链接: https://pan.baidu.com/s/10yeVvm-CoOeAkvbBfOIxxA 密码: g63a

有了关键的文件以后,就是配置了,配置方式也很简单,将下面的代码添加在httpd.conf就可以了

# 引入mod_jk.so文件
LoadModule jk_module modules/mod_jk.so  

#这里是workers.properties的位置,和httpd.conf的位置相同
 JkWorkersFile /etc/httpd/conf/workers.properties  

#日志文件存放位置
JkLogFile /etc/httpd/logs/mod_jk.log  

JkMount /*WEB-INF worker1
JkMount /*j_spring_security_check worker1
JkMount /*.action worker1
JkMount /servlet/* worker1
JkMount /*.jsp worker1
JkMount /*.do worker1
JkMount /*.action worker1
JkMount /*fckeditor/editor/filemanager/connectors/*.* worker1
JkMount /fckeditor/editor/filemanager/connectors/* worker1

在httpd.conf的相同目录下新建一个workers.properties文件,代码如下

# 命名
worker.list=worker1  

# 设置属性
worker.worker1.type=ajp13    
worker.worker1.host=localhost    
worker.worker1.port=8009  
worker.worker1.lbfactor=50    
worker.worker1.cachesize=10    
worker.worker1.cache_timeout=600    
worker.worker1.socket_keepalive=1    
worker.worker1.socket_timeout=300  

最后记得重启服务器

我们重启服务器以后,在Tomcat目录下放的静态文件,Apache是不会加载的。在Apache下面放的jsp文件,Tomcat也是不会加载的。所以在放我们的代码文件的时候,需要分开放

(完)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值