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

第四十六天:Apache整合toncat和resin

2015-11-07 16:20 399 查看
小Q:青海长云暗雪山,孤城遥望玉门关;黄金百战穿金甲,不破楼兰终不还。

关于编译安装Apache和JDK·tomcat·resin可以到我JSP和集群架构模块中看哈,不细说了;
两种整合都是需要让Apache调用模块mod_jk.so和mod_caucho.so来对其整合;
-------------------------------Apache整合tomcat----------------------------------
1.简介
apache支持静态页,tomcat支持动态的,比如servlet等。
apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,apache作为转发,将java请求给tomcat处理。
apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。
2.安装编译完Apache·JDK和tomcat后

同样官网下载jakarta-tomcat-connectors-1.2.15-src.tar.gz
3.编译生成mod_jk
# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/
4.配置Apache配置文件(虚拟主机配置文件)

在/usr/local/apache2/conf/下面建立两个配置文件mod_jk.conf和workers.properties。
# vi mod_jk.conf

添加以下内容:
# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
# Where to put jk logs
JkLogFile /usr/local/apache2/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"
# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* worker1
JkMount /*.jsp worker1
# vi workers.properties

添加以下内容:
# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for 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
再配置httpd.conf,作以下修改:

将Listen 80 修改为 Listen 127.0.0.1:80
将ServerName 修改为 ServerName LocalHost:80
5.测试
在DirectoryIndex中添加 index.jsp
我的网页放在/var/wwwroot下,所以要修改DocumentRoot

DocumentRoot "/var/wwwroot"
<Directory "/var/wwwroot">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
XBitHack on
</Directory>
<Directory "/var/wwwroot/WEB-INF">
Order deny,allow
Deny from all
</Directory>
增加关于加载mod_jk的语句:

LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
6.最后编辑Tomcat的配置文件server.xml,在HOST段中加入:

<Context path="" docBase="/var/wwwroot" debug="0" reloadable="true" crossContext="true"/>
在/var/wwwroot下建立一个index.jsp:2 + 2 = <%= 2 + 2 %>
启动Apache和Tomcat,用浏览器访问http://localhost/,应该可以看到2+2=4了。
实现负载集群:http://zhou123.blog.51cto.com/4355617/981560

----------------------------------Apache整合resin-------------------------------
在安装编译Apache的时候要安装mod_so.c模块,指明支持DSO;
1.如果不支持,或者想重新安装一个新apache,可以用源码来重新编译一个
# ./configure --prefix=/usr/local/apache --enable-module=so
# make
# make install
2.编译mod_caucho.so模块
解压缩resin的源码,(编译RESIN前需要安装JDK,并设置好JDK)
# ./configure --with-apxs=/usr/local/apache/bin/apxs
# make
# make install
如果不知道apxs的路径可以用# ./configure --with-apache=/usr/local/apache
指定apache的路径也可以
3.设置resin.conf
编译resin的配置文件.修改粗体部分
#vi conf/resin.conf
<cluster>
<srun server-id="" host="127.0.0.1" port="6802"/>
</cluster>
#server-id 可以自己定义,resin如果不和apache在同一台机器,host后改为resin的ip,port
#将resin的默认文档目录与apache的DocumentRoot设为一致的目录
<host id="">
<web-app id='/' document-directory="/usr/local/apache/htdocs"/>
</host>
启动resin
4.测试

编写一个jsp文件来测试resin是否正常
创建一个文件
#vi /usr/local/apache/htdocs/test.jsp
2 + 2 = <%= 2 + 2 %>
在浏览器中浏览http://localhost:8080/test.jsp如果能看到2 + 2 = 4
说明resin正常 修改apache设置编译resin成功后会自动修改apache的httpd.conf,加入如下内容,
如果没有自动添加,应该手动添加如下内容
LoadModule caucho_module libexec/mod_caucho.so
ResinConfigServer localhost 6802
<Location /caucho-status>
SetHandler caucho-status
</Location>
重启apache和后端resin再次测试jsp文件和html文件,http://localhost/test.jsp如果可以看到页面,说明配置成功了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Apache tomcat resin