Apache与Tomcat静动态分离

Apache与Tomcat比较
 
apache支持静态页,tomcat支持动态的,比如servlet等。 
 
一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。 
 
apache可以支持php\cgi\perl,但是要使用Java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。 
 
apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。 
 
这两个有以下几点可以比较的: 
1、两者都是apache组织开发的 
2、两者都有HTTP服务的功能 
3、两者都是免费的 
 
不同点: 
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等) 
Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器 
 
整合的好处是: 
如果客户端请求的是静态页面,则只需要Apache服务器响应请求 
如果客户端请求动态页面,则是Tomcat服务器响应请求 
因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销 

二 Linux下Apache与Tomcat整合的简单方法(未测)

1、准备,下载需要的文件。这里假定你已经正确安装配置好了JDK。 
到Apache官方网站下载所需要的文件: 
httpd-2.2.0.tar.gz 
apache-tomcat-5.5.12.tar.gz 
jakarta-tomcat-connectors-1.2.15-src.tar.gz 
其中httpd和jakarta-tomcat-connectors为源码包,apache-tomcat为二进制包。 
 
2、安装Apache。 
# tar xzvf httpd-2.2.0.tar.gz 
# cd httpd-2.2.0 
# ./configure --prefix=/usr/local/apache2 --enable-so 
# make 
# make install 
 
3、安装Tomcat。 
# cp apache-tomcat-5.5.12.tar.gz /usr/local/ 
# cd /usr/local 
# tar xzvf apache-tomcat-5.5.12.tar.gz 
# ln -s apache-tomcat-5.5.12 tomcat 
 
4、编译生成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/ 
 
5、配置。 
在/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 
 
在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 
 
 
最后编辑Tomcat的配置文件server.xml,在HOST段中加入: 
Context path="" docBase="/var/wwwroot" debug="0" reloadable="true" crossContext="true"/> 
在/var/wwwroot下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问,应该可以看到正确的页面了。  
 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/674be9138683ed536dd293bcac572421.html