您的位置:首页 > 运维架构 > Tomcat

Linux环境下整合Apache和Tomcat

2018-03-08 22:51 459 查看

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也是不会加载的。所以在放我们的代码文件的时候,需要分开放

(完)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: