一、概述:
这段时间一直在做JSP开发,原先只使用Tomcat5.0作为HTTP服务器,使用下来很差,页面打开是比较慢,与Apache2集成后,性能提高很多。Apache2是一个高性能的Web服务器,可以应用于Unix、Linux及Win32平台,但Apache2服务器只能处理静态的Web页,Apache2没有处理JSP的引擎,所以要让Apache2实现JSP的引擎,需要把JSP引擎Tomcat5.0集成再Apache上,发挥Apache2高性能服务的性能,提供Web的处理能力。
由于Tomcat5.0具有HTTP服务器的功能,在处理Web性能上比较差,但Tomcat5.0具有JSP的引擎功能。故集成Apache2与Tomcat5.0,可以提高Web服务器的处理能力。
二、平台:
操作系统: Windows 2000/XP/2003
SDK: J2sdk- 1.4.1 .07
Apache: Apache- 2.0.52 -no_ssl
Tomcat: Tomcat- 5.0.16
Tomcat-connectors:Tomcat-connectors-jk 2.0.4
三、安装:
1、Apache2的安装:
Apache2的安装与其他软件的安装没有什么区别,假设我们安装的目录为C:/Apache/Apache2,安装完成后,如果IE中输入http://localhost/后出现安装Apache的测试页面,说明你的安装Apache正确的,如何没有出现出Apache测试页面,说明你的安装有问题。有可能是由于你的机器上装有IIS服务端口与Apache2的安装默认端口80冲突,在这种情况下,用户可以到C:/Apache/Apache2/conf下修改Apache2服务器配置文件httpd.conf,一般配置如下:
●ServerType(服务器类型):有两个为[standalone]和[inetd],[standalone]是用自己的进程来监听每一个连接,而[inetd]是在连接到达时启动Apache进程。一般都设为standalone,即此行改为:ServerType standalone
●ServerRoot(服务器根目录):ServerRoot也就是Apache Server的安装目录,此行改为:ServerRoot "C:/Apache"
●port(服务器端口):一般默认情况下是80,如果你的pc上还装有其它的Web Server ,那必须将两者分开,如一个为80,一个为8080就可以了!!改为:port 80
●ServerAdmin(服务器管理),这是应该填的是服务器管理员的E-mail。如果服务器产生错误,则会自动在错误页面上加上这个地址,你可以向他求救!在这里也可以不改动。
●ServerName(服务器名),这个设置很重要,她也就是你的计算机的网络标识,一般为localhost。当然也可以自定,ServerName localhost
●DocumentRoot(文档根目录),这里填的是默认的主目录地址,即在IE浏览器的地址栏中输入http://localhost/时IE就会自动到此目录下面去找index.html文件。改为DocumentRoot "C:/Apache/htdocs"(注意路径一定要加上引号)。
●DirectoryIndex(默认页面),这个默认页面就是在IE浏览器的地址栏中输入localhost时出现的画面。可以设多个文件后缀名,如.htm、.html、.php、.ph3。这里改为ScriptAlias /cgi-bin/ "C:/Apache/cgi-bin/"(注意路径一定要加上引号)。
2、Tomcat5.0的安装:
Tomcat5.0的安装与其他的软件安装没有什么区别,假设我们安装的目录为C:/Tomcat 5.0,同样安装完成后,如果在IE钟输入http://localhost:8080/后出现Apache Tomcat/5.0.16的界面,说明你已经成功安装Tomcat5.0,如果没有出现上述的Tomcat界面,说明你安装Tomcat5.0有问题,可以检查Tomcat5.0的安装端口等信息。对于Tomcat5.0的配置集中在C:/Tomcat 5.0/conf/server.xml、web.xml、jk2.properties等配置文件,下面介绍一下Tomcat5.0中server.xml的配置:
<!--定义Apache2与Tomcat5.0的接口协议AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />
<!--自定义Web虚拟路径-->
<host>
<Context path="/kbd" docBase="D:/ERP/kbd" workDir="D:/ERP/kbd" reloadable="true" crossContext="true" debug="0">
</Context>
</host>
<!--定义数据库的连接池使用Java的JNDI -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource name="jdbc/access" type="javax.sql.DataSource" username="" password="" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver" maxIdle="2" maxWait="5000" url="jdbc:odbc:kbd_dvbbs"/>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
3、Tomcat-connectors:
Tomcat-connectors是指实现Apache2与Tomcat5.0之间进行接连的接口包mod_jk2.so,可以直接把mod_jk2.so拷贝到Apache2的模块目录下C:/Apache/Apache2/modules;
四、Apache2与Tomcat5.0集成配置:
完成上述安装,并确认Apache2与Tomcat5.0成功完成后,就开始配置Apache2的HTTP服务。配置如下步骤:
1、 修改C:/Apache/Apache2/conf/httpd.conf配置文件如下:
# Dynamic Shared Object (DSO) Support加载mod_jk2.so
LoadModule jk2_module modules/mod_jk2.so
# DirectoryIndex: 中加入index.jsp
DirectoryIndex index.html index.html.var index.jsp
2、 在C:/Apache/Apache2/conf/httpd.conf下新建工作区文件,此文件是实现Apache2与Tomcat5.0之间接口设置的关键,对于Apache2与Tomcat5.0在同一台服务器上时的workers2.properties:
[shm:]
file=C:/Apache/Apache2/logs/jk2.shm
size=1000000
[channel.socket:localhost:8009]
port = 8009
host = 127.0.0.1
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
[uri:/jsp-examples/*]
[uri:/tomcat-docs/*]
[uri:/kbd/*]
worker=ajp13:localhost:8009
对于Apache2与Tomcat5.0不再同一台机器的设置workers2.properties:
[shm]
file=C:/Apache/Apache2/logs/jk2.shm
size=1000000
[channel.socket:IPAddressOfTomcatMachine:8009]
port=8009
host=IPAddressOfTomcatMachine
[ajp13:IPAddressOfTomcatMachine:8009]
channel=channel.socket:IPAddressOfTomcatMachine:8009
[uri:/jsp-examples/*]
[uri:/tomcat-docs/*]
[uri:/kbd/*]
worker=ajp13:IPAddressOfTomcatMachine:8009
3、C:/Apache/Apache2/logs下创建日志文件:jk2.shm、stderr.log、stdout.log等文件,Aapache的运行日志文件在error.log和access.log,从这几个文件中可以查看Apache服务器的运行日志信息。
4、Apache2配置完成后,可以使用命令运行Apache2:
Apache –k stop – 停止Apache2服务器
Apache –k start – 启动Apache2服务器
以下是有关Tomcat5.0的配置信息:
1、 修改C:/Tomcat 5.0/conf/server.xml配置文件:
启用Apache2与Tomcat5.0之间的接口协议ajp13
<!--AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />
2、 修改C:/Tomcat 5.0/conf/jk2.properties文件
## T BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
## WHEN YOU EDIT THE FILE.
## COMMENTS WILL BE _LOST_
## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
# Set the desired handler list
# handler.list=apr,request,channelJni
#
# Override the default port for the socketChannel
# channelSocket.port=8019
# channelSocket.port=8009
# Default:
# channelUnix.file=${jkHome}/work/jk2.socket
# Just to check if the the config is working
# shm.file=C:/Apache/Apache2/logs/jk2.shm
# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one of the following directives:
#apr.jniModeSo=C:/Apache/Apache2/modules/mod_jk2.dll
# If set to inprocess the mod_jk2 will Register natives itself
# This will enable the starting of the Tomcat from mod_jk2
# apr.jniModeSo=inprocess
3、 定义web虚拟路径:
<host>
<Context path="/kbd" docBase="D:/ERP/kbd" workDir="D:/ERP/kbd" reloadable="true" crossContext="true" debug="0">
</Context>
</Host>
4、配置Tomcat5.0后,重新启动Tomcat5.0,使用命令如下:
Shutdown.bat -- 关闭Tomcat5.0
Startup.bat -- 启动Tomcat5.0
五、测试:
完成以上配置后,可以进行测试:
http://localhost/ -- 应该出现Aapache测试页面
http://localhost:8080/ -- 出现Tomcat 5.0管理页面
http://localhost:8080/kbd -- 测试主页
http://localhost/kbd -- 测试主页(说明Apache与Tomcat集成)