apache支持静态页,tomcat支持动态的,比如servlet等。
一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。
apache可以支持PHPcgiperl,但是要使用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的服务开销
转自:http://hi.baidu.com/%D0%A1%BA%EC%DD%AB%DC%C4/blog/item/52154ec5a5c02ca08226acf9.html
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://localhost/,应该可以看到正确的页面了。
三 Windows下Apache与Tomcat的整合
转自:http://bbs.blueidea.com/thread-2873268-1-1.html
准备工作:
1、 Apache 2.2.4
下载地址:http://cztele1.skycn.com/down/apache_2.2.4-win32-x86-no_ssl.zip
2、 Tomcat 6.0.16
下载地址:http://apache.mirror.phpchina.co ... e-tomcat-6.0.16.zip
3、 JDK
下载地址:http://cds.sun.com/is-bin/INTERS ... -windows-i586-p.exe
如果只是应用的话,也可以选择安装JRE,因为JRE比较小:)
4 JK-1.2.26-httpd-2.2.4
下载地址:http://www.apache.org/dist/tomca ... 2.26-httpd-2.2.4.so
注意JK的版本一定要与Apache版本相同。如果你的版本与我的不同,可以去官网下载,有多种版本,适用于各种操作系统,下载适用的既可,地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
开始安装:
软件的安装顺序可以适当调整,但是JDK(JRE)一定要在Tomcat之前安装:
1、安装JDK(JRE)
此处默认、自定义安装均可。安装完成以后按下面的示例设置你的系统环境变量:我的电脑 -> 属性 -> 高级 -> 环境变量 (这里要添加的是系统变量,非用户变量)
JAVA_HOME = D:Program FilesJavajdk1.6.0_07
CLASSPATH = .;%Java_Home%lib ools.jar;%Java_Home%libdt.jar;
PATH = %Java_Home%in;%PATH%
注意JAVA_HOME的路径改为你的实际安装路径。其它两个不变。
2、安装Apache
此处注意,如果你本机已经装了IIS并且占用了80端口,你可以选择禁用IIS或者给IIS指定其它端口,或者给Apache指定其它端口,根据实际情况进行设置。在Apache的安装过程中要设置Network Domain和Server Name为Localhost,设置你的Email地址(这个一定要设置,不然Apache启动不起来)。
安装完成之后,如果apache用的是80端口,那么在浏览器中输入 http://localhost ,如果使用的是其它端口例如81,则输入 http://localhost:81 ,将会看到 Apache 的成功页面。此时Apache已经运行,在系统托盘可以看到它的图标,双击打开可以对Apache服务进行控制,我们下面还要安装Tomcat和JK,所以现在选择 Stop 停止 Apache 服务。
3、安装Tomcat
将Tomcat解压到 D:Program FilesTomcat 下,设置环境变量:
CATALINA_BASE = D:Program Files omcat
CATALINA_HOME = D:Program Files omcat
CLASSPATH = %CATALINA_HOME%libservlet-api.jar
运行 D:Program FilesTomcatinstartup.bat 启动Tomcat,出现Tomcat页面则表示安装成功。
4、安装JK
把 mod_jk-1.2.26-httpd-2.2.4.so 拷贝到 D:Program FilesApache2.2modules 下。
下面进行服务器的配置:
1、配置Tomcat
查找Tomcat目录下的 conf/server.xml文件,在<host></host>中间加入以下语句以修改其默认的目录:
<Context path="" docBase="E:wwwroot" reloadable="true" crossContext="true"/>
在这里,如果 path 不为空,则设置的是虚拟目录,path 的值为虚拟目录名。
查找Tomcat目录下的 conf/workers.properties文件,并对比下方文本内容,如有不同处,以下方文本为准进行修改。
workers.tomcat_home=C:apache-tomcat-6.0.18 #让mod_jk模块知道Tomcat的位置
workers.java_home=D:Program FilesJavajre1.6.0_07 #让mod_jk模块知道jre的位置
ps=
worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改
如果此文件不存在,则依以上内容创建。对Tomcat的设置进行任何修改后都要重启才可以生效。
2、配置Apache
打开D:Program FilesApache2.2conf下的httpd.conf,在最后加入下面这段代码并保存。
LoadModule jk_module modulesmod_jk-1.2.26-httpd-2.2.4.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "D:Program FilesTomcatconfworkers.properties"
#指定tomcat监听配置文件地址
JkLogFile "D:Program FilesTomcatlogsmod_jk2.log"
#指定日志存放位置
JkLogLevel info
#设置虚拟主机
<VirtualHost localhost>
#如果非虚拟主机,将<VirtualHost localhost>和最后的</VirtualHost>注释或者删除掉即可
ServerAdmin localhost
DocumentRoot E:/wwwroot
<Directory "E:/wwwroot">
#您的站点项目所在路径,应与tomcat中的目录设置相同,据说以上两个必须同时设置才可以生效,没有试过不同的时候会有什么情况
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#让Apache支持对.do传送,用以Tomcat解析
</VirtualHost>
#开头的行为注释,可以删除。此处的配置我是以设置虚拟目录,重新指定了serverName,DocumentRoot路径的方式配置站点,实际上,Apache的配置可以非常灵活,你也可以不采用虚拟目录的方式,而直接去修改站点的默认配置,使用任意文本编辑工具,搜索如 ServerName,DocumentRoot,ServerAdmin等相关项,然后将该项的配置根据你的实际情况进行修改即可。我建议大家可以多多尝试不同的配置,这是一种很有乐趣的体验。
所有的修改完成以后,双击系统托盘中的Apache图标,然后点击Start启动Apache服务。
在地址栏中分别输入http://localhost/,与http://localhost:8080/若结果相同,Apache与Tomcat整合成功
安装常见问题:
1.一启动Apache出现“windows不能在本地计算机启动Apache2”错误
多数情况是端口的问题,可能有其他软件占用了80端口,最好把Apache的端口改成81端口就可以了
2.windows下查看80端口占用情况,适用于查看任何端口
开始–运行–cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选”查看”-”选择列”,经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用。
我们需要确定谁占用了我们的80端口
在windows命令行窗口下执行:C:>netstat -aon|findstr “80″
看到了吗,端口被进程号为2044的进程占用,继续执行下面命令:
C:>tasklist|findstr “2044″
avp.exe 2044 Console 0 37,680 K
很清楚吧,avp 卡巴监听80端口,调整卡巴网络监听设置。
当然,如果你的80端口被其他程序占用,kill掉或者调整端口。
四 完!
感谢,Thanks!
作者:iTech
出处:http://itech.cnblogs.com/
本文版权归作者iTech所有,转载请包含作者签名和出处,不得用于商业用途,非则追究法律责任!
contos5下apache和tomcat整合
一、准备软件:
apache2.2.10下载地址:http://httpd.apache.org/download.cgi
tomcat6.0下载地址:http://tomcat.apache.org/download-60.cgi
jdk1.5.0下载地址:http://java.sun.com/javase/downloads/previous.jsp
jk1.2.7下载地址:http://tomcat.apache.org/download-connectors.cgi
二、软件安装:
**************************************************************************
1、apache安装
把下载下来的包放在 /usr/local/src 下,使用 tar zxvf httpd-NN.tar.gz解压,
cd httpd-NN
./configure --prefix=/usr/local/httpd
make
make install
现在你发现在/usr/local下面多出了一个httpd的目录
我们可以利用 /usr/local/httpd/bin/apachectl -k start|stop|restart 来管理httpd服务。
如果要随系统启动,我们必须在 /etc/rc.d/init.d/rc.local文件的末尾加上一行:
/usr/local/httpd/bin/apachectl -k start
即使是这样,但是我们还是不方便管理httpd服务,我们能不能,像rpm安装那样使用service服务来管理httpd服务呢?
答案是肯定的我们必须如下操作:
在 /etc/rc.d/init.d/下建立一个 httpd的文件,利用 chmod 755 httpd 使其具有执行能力。
vi httpd 添加如下内容:
#!/bin/bash
# Startup script for the Apache Web Server
# chkconfig: 345 85 15
# description: Apache is a World Wide Web server.
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
INITLOG_ARGS=""
apachectl=/usr/local/apache2/bin/apachectl
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
prog=httpd
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -HUP
RETVAL=$?
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog
{start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
使用chkconfig -add httpd
chkconfig --level 2345 httpd on
这样httpd就可以利用 service httpd start|stop|restart命令来管理了,
并且它在运行环境为2、3、4、5随系统启动。
****************************************************************************
2、apr和apr-util安装
cd /usr/local/httpd/srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install
apr是可移植运行库,主要为上层的应用程序提供一个可以跨越多操作系统
平台使用的底层支持接口库,以后的配置中会用到它。
****************************************************************************
3、tomcat安装
我们要在官方下载二进制包,把下下来的二进制包解压
tar zxvf apache-tomcat.tar.gz
mv apache-tomcat.tar.gz /usr/local/tomcat
这样就算完成了。
*****************************************************************************
4、安装jdk
把下下来的jdk-1.5.0.linux.bin的文件,在当前文件夹输入 ./jdk-1.5.0.linux-bin
接下来会出现是否遵守协议的选项,你直接输入y就可以了,把解压出来的目录放到/usr/local下面
mv jdk-1.5.0.linux.bin /usr/local/jdk
这样java就已经转好了。
******************************************************************************
5、tomcat和java的连接
首先我们添加环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib
使环境变量生效 source /etc/profile
Tomcat6.0开机启动脚本设置
安装jsvc
cd /usr/local/tomcat6/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
sh support/buildconf.sh
如果成功,命令终端打印出下面report:
support/buildconf.sh: configure script generated successfully
chmod 755 configure
./configure --with-java=/usr/local/jdk
make
cp /usr/local/tomcat6/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
到此,我们在/etc/init.d/下找到tomcat
vi /etc/init.d/tomcat
修改里面环境了变量的值:
JAVA_HOME=jdk安装目录
CATALINA_HOME=tomcat安装目录
DAEMON_HOME=tomcat安装目录/bin
TOMCAT_USER=root
在文件的最开始添加以下语句
#!/bin/bash
# Startup script for the tomcat Web Server
# chkconfig: 2345 85 15
# description: tomcat
# Source function library.
. /etc/rc.d/init.d/functions
使用以下命令使tomcat文件有执行权限和随系统启动
chmod 755 tomcat
chkconfig -add tomcat
默认情况下按照好了Tomcat6,启动时会在 /usr/local/apache-tomcat6.0/logs/stdout.log 里出现下面的日志:
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/diablo-jdk1.5.0/jre/lib/i386/client:/usr/local/diablo-jdk1.5.0/jre/lib/i386:/usr/local/diablo-jdk1.5.0/jre/../lib/i386:/usr/lib:/usr/local/lib
下面就来安装 tomcat-native
cd /usr/local/tomcat/bin
tar zxvf tomcat-native.tar.gz
cd ./tomcat-native-1.1.10-src/jni/native/
./configure –with-apr=/usr/local/apr-httpd
make
make install
安装后多出一个目录 /usr/local/apr
然后安装上面的提示操作一下就好了,我这里用的 link 的方式:
ln -s /usr/local/apr/lib/libtcnative-1.so /usr/local/jdk/jre/lib/i386/libtcnative-1.so
再重启 tomcat,
serice tomcat6 restart
大功搞成,呵呵
************************************************************************************
6、安装jk
先解压jk,tar zxvf jk.xxx.tar.gz
cd native
./buildconf.sh
chmod 755 configure
./configure --with-apxs=/usr/local/httpd/bin/apxs
make
make install
安装结束
************************************************************************************
三、整合apache和tomcat
首先编辑apache的conf文件
vi /usr/local/httpd/conf/httpd.conf
在文件末尾添加如下行:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/jk-runtime-status
JkLogLevel info
JkMountfile conf/uriworkermap.properties
JkMountCopy All
# 下面这个是jkstatus的加密处理
<Location /jkstatus>
JkMount jkstatus
Order deny,allow
AuthType Basic
AuthName "jkstatus"
AuthUserFile conf/jkpasswd
require valid-user
</Location>
再在conf文件夹下添加一个wokers.properties文件
cd /usr/local/httpd/conf
touch workers.properties
vi workers.properties
添加以下语句:
worker.list=local,jkstatus
worker.local.type=ajp13
worker.local.host=localhost
worker.local.port=8009
worker.jkstatus.type=status
下面是对jkstatus监控页面配置用户和密码
/usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/jkpasswd meijun1234
passwd:
reinput passwd:
meijun1234是您的用户,输入两次你要设置的密码。
这样就算是整合完毕了。
四、建立实例站点
我们配置tomcat是为了做虚拟机,为了和主的配置文件分离,我们在httpd.conf主配置添加一行
Include conf.d/virtualhost.conf
做这个前,您必须首先在httpd目录下建立目录和文件:conf.d/virtualhost.conf
我们编辑这个文件
vi ./conf.d/virtualhost.conf
加入下列内容:
NameVirtualHost *:80
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory /var/www/jsp>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<VirtualHost *:80>
DocumentRoot /usr/local/apache2/htdocs
ServerName localhost
ErrorLog logs/default/error.log
TransferLog logs/default/transfer.log
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName html.jsp.com
ServerAlias test.jsp.com
ErrorLog logs/html/error.log
TransferLog logs/html/transfer.log
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/jsp
ServerName www.jsp.com
</VirtualHost>
再编辑:/usr/local/tomcat/conf/server.xml
在<Service>和<Engine>内重新添加一个<Host>
如下:
<Host name="www.jsp.com" appBase=""
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/var/www/jsp" />
</Host>
重启httpd和tomcat
在你在浏览器访问的时候必须在hosts文件里把www.jsp.com指向您的服务器,否着它会找不到服务器,还要在/var/www/里面建立
jsp文件夹,在jsp文件夹里放入一个测试用的jsp程序
您一切工作都做好了,在地址栏输入http://www.jsp.com能够看到您的测试页面,在http://www.jsp.com/jkstatus,能看到你jk连接器的状况,这个jk连接器的web管理页面是mod_jk.so自带的一个功能。
文章来自:http://blog.csdn.net/yumengkk/article/details/7882550