最近在服务器上进行了Apache和Tomcat的整合,让用户对jsp等页面发起的访问可以转交给Tomcat处理,使得Apache服务器支持jsp页面的访问。
首先需要的是配置好JAVA以及Apache还有Tomcat。相关配置方法网络上有很多,在这里不一一赘述。配置完成后可以通过指令java -version以及javac来检测java的配置是否成功。
Apache和Tomcat的验证可以直接通过打开服务器后访问默认页面完成。接下来重点谈谈如何整合Apache和Tomcat。
我的配置方法需要借助tomcat-connectors,因此在开始配置之前,需要下载tomcat-connectors,下载网址为 点击打开链接
下载后,解压,进入native文件夹依次输入./configure --with-apxs=/bin/apxs(此处apxs地址可能不一样,可用命令which apxs来查看)和make完成编译,在/native/apache-2.0文件夹下可以找到mod_jk.so。将这个文件复制到apache安装路径下的modules文件夹下。到这里也就完成了第一步。
接下来是创建相关配置文件。创建配置文件可以有很多种方式,主要目的是为了让apache把接收到jsp或servlet相关的应该由tomcat处理的请求交给tomcat处理。接下来我介绍其中一种配置方式,进入apache安装路径下的conf文件夹,创建两个文件,mod_jk.conf以及workers.properties。文件对应内容如下
mod_jk.conf内容如下
#LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/httpd/conf/workers.properties
# Where to put jk logs
JkLogFile /etc/httpd/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"
JkMount /*/servlet/* worker1
JkMount /*.jsp worker1
JkMount /application/* worker1
JkMount /*.do worker1
JkMount /*.class worker1
JkMount /*.jar worker1
其中,前两个参数(JkWorkerFile和JkLogFile)具体的值会因为apache安装路径的不同而不同,此处需写入自己的apache服务器的路径。
文件末尾的几行JkMount意思是将符合条件的文件交给Tomcat处理。中间则是一些常规参数的设置。
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
紧接着是对/conf文件夹下自带的httpd.conf文件的一些修改
添加
LoadModule jk_module modules/mod_jk.so
Include /etc/httpd/conf/mod_jk.conf
到文件中,我的添加位置是在文件刚开始的部分,有另一个自带的Include附近,网上部分教程说是在文件末尾添加,这个我没进行测试,不知道是否可行。
在ServerAdmin参数下几行有一行注释是ServerName,去掉#,改为ServerName localhost:80
然后找到DirectoryIndex index.html在后面添加 index.jsp
注:网上许多教程说在Listen 80的80前加上IP地址,其实并不需要
完成上述配置后可以尝试重启apache(service httpd restart)如果之前没问题,在添加两个文件,更改配置后出现错误,证明配置过程有错,可以输入错误提示中的命令,查查哪里出错,慢慢排查问题。
最后,进入tomcat的位置,打开/conf文件夹,对server.xml进行配置在
主要作用是让Tomcat也使用Apache的工作目录。
建立一个jsp文件放在/var/www/html下
重启Apache和Tomcat,输入http://localhost/xx.jsp如果可以直接访问,即代表配置成功。
本方法参考网上的多篇文章和方法,经过本人尝试确实可行,如有错误还望指出