Linux下Apache和Tomcat的整合,linuxapachetomcat


最近在服务器上进行了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进行配置在<Host></Host>标签之间加入 

<Context path="" docBase="/var/www" debug="0" reloadable="true" crossContext="true"/> 

主要作用是让Tomcat也使用Apache的工作目录。

建立一个jsp文件放在/var/www/html下

重启Apache和Tomcat,输入http://localhost/xx.jsp如果可以直接访问,即代表配置成功。


本方法参考网上的多篇文章和方法,经过本人尝试确实可行,如有错误还望指出

相关内容

    暂无相关文章