Apache与tomcat 整合
纯转载 自己看起来方便而已。
apache与tomcat整合的必要性
Apache是最流行的Web服务器,开放源代码,支持跨平台的应用(可以运行在几乎所有的Linux、Unix、Windows系统平台上),尤其对Linux的支持相当完美。
apache的优点有:
功能强大,apache自带了很多功能模块,可根据需求编译自己需要的模块。
配置简单,apache的配置文件非常简单,通过简单的配置可实现强大功能。
速度飞快,apache处理静态页面文件效率非常高,可以应对大并发和高负荷访问请求。
性能稳定,apache在高负荷请求下性能表现卓越,执行效率非常高。
但是apache也有自身的缺点:
只支持静态网页,对于jsp、php等动态网页不支持
Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,因此,不太适合于多处理器环境。
Tomcat是Sun和Apache合作做出来的JSPServer,有如下优点:
支持Servlet和JSP,可以很好的处理动态网页。
跨平台性好:Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。
但是,tomcat也有自身缺点:
处理静态页面效率不高:Tomcat本身可以做为Web Server,但是tomcat在处理静态页面时没有Apache迅速。
可配置性不强:tomcat不像Apache一样配置简单,稳定、强壮。
综上所述,通过相互的整合刚好弥补了各自的缺点,通过整合可以实现:
客户端请求静态页面时,由Apache服务器响应请求。
客户端请求动态页面时,则是Tomcat服务器响应请求。
通过apache信息过滤,实现网站动、静页面分离,保证了应用的可扩展性和安全性。
二 、 apache与tomcat的整合
支持文件mod_jk.so
1.下载jakarta-tomcat-connectors-1.2 . 15-src.tar
2.编译mod_jk.so
# tar -xvf jakarta-tomcat-connectors-1.2 . 15-src.tar
# cd jakarta-tomcat-connectors-1 . 2 . 15-src/jk/native //切换目录
# ./configure --with-apxs=/usr/local/httpd/apache2/bin/apxs(/usr/local/apache2/bin/apxs 安装的路径)
# make //编译生成安装包
#cp . /apache-2.0/mod_jk . so /usr/local/httpd/apache2/modules/ //拷贝到apache安装目录modules文件夹下
3 . 修改/etc/httpd/conf目录下httpd.conf
httpd.conf文件下增加以下语句(红色标记处)
LoadModule jk_module modules/mod_jk . so
Include "/usr/local/httpd/apache2/conf/mod_jk.conf"
4.目录/usr/local/httpd/apache2/conf/下新建mod_jk.conf,
#cd usr/local/httpd/apache2/conf
#vi mod_jk.conf
增加以下内容: //红色语句不需要添加
------------------------------------------------------------------------
#Load mod_jk module
LoadModule jk_module modules/mod_jk.so //加载目标文件或库,并将其添加到活动模块列表
#Where to find workers.properties
JkWorkersFile conf/workers.properties //加载工作文件
#Where to put jk logs
JklogFile logs/mod_jk.log //加载日志文件
#Set the jk log level[debug/error/info]
JkLogLevel info
#Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
#JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
#Send servlet for context /examples to worker named ajp13
#JkMount /servlet/* ajp13
#Send JSPs for context /examples to worker named ajp13
#JkMount把匹配的转发到指定服务器
JkMount /*.jsp ajp13 //将jsp文件转发到ajp13服务
JkMount /* ajp13 //将所有文件转发到ajp13服务
#通过JkUnMount/*.html,表示所有*.html不交给ajp13服务器处理
#JkUnMount /*.html ajp13
----------------------------------------------------------------------------
按ESC 输入#:wq! //保存文件
5.目录/usr/local/httpd/apache2/conf/下新建workers.properties文件
#vi workers.properties
增加以下内容:
----------------------------------------------------------------------------
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
----------------------------------------------------------------------------
6.配置server.xml文件
在后添加
docBase 为程序发布的路径,可以为相对路径或者是绝对路径
7.测试是否连接成功
创建test.jsp文件,存放在local/httpd/apache2/htdocs/目录
test.jsp添加以下内容:
----------------------------------------------------------------------------