用Apache+Tomcat创建与管理Web服务器

发表于:2007-07-04来源:作者:点击数: 标签:
Apache的特点是简单、速度快、 性能 稳定,并可做代理 服务器 来使用。本来它只用于小型或试验Internet 网络 ,后来逐步扩充到各种 Unix 系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的

  Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。Apache成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
  
  几乎所有的Linux发布都安装Apache作为默认配置。SuSE7.1甚至预安装有包括各种高级模块选项的Apache,如PHP3,mod_perl和LDAP等等。用户会惊奇地发现系统安装成功就会有一个功能强大的Web服务器可供选择。虽然安装Apache并不是非常简单,但是如果有具有新的特性或安全补丁的Apache发布,则下载源代码包并编译新的Apache是值得的。
  
  Apache不但具有庞大的用户群基础,并且有丰富的配置使用文档。Apache提供服务器端对脚本技术的支持,比如Perl、PHP等,Apache结合使用Apache JServ可以实现对Java servlets及JSP的支持。Apache的很多模块实现安全方面的防护:如mod_auth提供对对服务器上数据进行适当的保护,而SSL模块则用来保护服务器和客户端之间的通信安全。
  
  下面我们再介绍一下Tomcat服务器软件,Tomcat是Sun和Apache合作做出来的JSPServer,支持Servlet2.2及JSP1.1等版本。笔者建议大家使用Tomcat,而且Tomcat未来将会取代JServ,成为Apache主要的Servlet&JSPEngine。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。
  
  作为WEB服务器扩展的Tomcat服务器有一些问题需要说明:
  
  当处理静态页面时,Tomcat不如Apache迅速。
  Tomcat不象Apache一样可配置。
  Tomcat不象Apache一样强壮。
  
  基于以上原因,一个现实的网站使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;并使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面。
  
  采用apache->tomcat这样的结构才具有更特出的优点,主要体现在具有更好的可扩展性和安全性。这种类型的站点的主要特点是每一个页面都可能是动态生成的,但这些数据中主要部分还是静态的(比如,各类图像GIF、JPG、PNG,流式媒体等),这种结构的优点是兼有可扩展性和安全性。
  
  下面以solairs8为例,免费下载Solaris版的Apache1.3.27,Tomcat4.1.12来说明安装配置WEB服务软件apache和应用服务软件tomcat(包括JDK),其它平台可以类比。
  
  注意:下载的Apache、Tomcat的版本与操作系统的类型有关。
  
  一、应用环境
  操作系统为Solaris8,应用环境为Java1.3(假定安装在/usr/java1.3目录下)、perl5.6(假定安装在/usr/local/bin目录下)和gzip(假定安装在/usr/local/bin目录下)。
  
  二、软件包的下载、编译与安装
  1、下载地址
  
  在http://www.apache.org可下载Apache源代码软件包apache_1.3.27.tar.gz。
  在http://jakarta.apache.org/builds/tomcat/release/v4.1.12/src/可下载Tomcat源代码软件包jakarta-tomcat-4.1.12-src.tar.gz。
  在http://jakarta.apache.org/builds/jakarta-tomcat/release/v4.1.12/bin/可下载已编译的Tomcat应用软件包jakarta-tomcat-4.1.12.tar.gz。
  
  2、编译与安装
  
  假设各软件包已下载到当前的某个工作目录(如:/home/tmp)下,Apache和Tomcat将安装在/home目录下。在当前目录我们可以进行如下操作。
  
  1)编译和安装Apache应用服务
  
  ①解包
  
  $/usr/local/bin/gzip-dc./apache_1.3.27.tar.gz|tarxf-
  
  ②编译
  
  $cd apache_1.3.27
  $./configure--prefix=/home/apache-1.3.27
  --with-perl=/usr/local/bin/perl--enable-module=so
  
  假设perl的解释命令安装在/usr/local/bin目录下,Apache服务安装在/home/apache-1.3.27目录下。
  
  $make
  
  ③安装
  
  $su
  #make install
  
  2)编译与安装mod_jk插件
  
  ①解包
  
  $/usr/local/bin/gzip-dcjakarta-tomcat-4.1.12-src.tar.gz|tarxf-
  
  ②编译
  
  $cd jakarta-tomcat-4.1.12-src/src/native/apache1.3
  $/home/apache-1.3.27/bin/apxs-omod_jk.so-D SOLARIS-I../jk-I/
  usr/java1.3/include-I/usr/java1.3/include/solaris-lposix4-c*.c../jk/*.c
  
  假定Java安装在/usr/java1.3目录下。
  
  ③安装
  
  $su
  #/home/apache-1.3.27/bin/apxs-i-a-njk mod_jk.so
  cp mod_jk.so/home/apache-1.3.27/libexec/mod_jk.so
  chmod 755 /home/apache-1.3.27/libexec/mod_jk.so
  [activating module`jkin/home/apache-1.3.27/conf/httpd.conf]
  
  3)安装Tomcat服务
  
  用超级用户身份把已编译的Tomcat4.1.12解包到/home目录下即可。
  
  $su
  #/usr/local/bin/gzip-dcjakarta-tomcat-4.1.12.tar.gz|(cd/home;tarxf-)
  
  3、参数配置
  
  (1)配置Apache服务
  
  用vi命令打开Apache的配置文件httpd.conf。
  
  #cd /home/apache-1.3.27/conf
  #vi httpd.conf
  
  在末尾添加以下内容。
  
  JkWorkersFile/home/jakarta-tomcat-4.1.12/conf/workers.properties
  JkLogFile/home/apache-1.3.27/logs/mod_jk.log
  
  注意:日志文件可根据具体情况调整。
  
  JkLogLevelwarn
  JkMount/*.jspajp13
  JkMount/servlet/*.jspajp13
  
  (2)配置Tomcat服务
  
  首先,修改server.xml文件。
  
  这里假定存放Apache的Web网页的根目录为/home/htdocs。
  
  #cd /home/jakarta-tomcat-4.1.12/conf
  #vi server.xml
  
  然后,在Connectors部分嵌入如下内容。
  
  <ConnectorclassName="org.apache.tomcat.service.
  PoolTcpConnector"><Parametername="handler"
  value="org.apache.tomcat.service.connector.Ajp
  13ConnectionHandler"/>
  <Parametername="port"value="8007"/>
  </Connector>
  
  接着,在SpecialWebapps部分嵌入如下内容。
  
  <Contextpath=""
  docBase="/home/htdocs"
  debug="0">
  </Context>
  
  修改workers.properties文件。
  
  #vi workers.properties
  ...
  workers.tomcat_home=/home/jakarta-tomcat-4.1.12
  ...
  workers.java_home=/usr/java1.3
  ...
  ps=/
  ...
  
  随后,修改Tomcat启动和关闭命令文件。
  
  #cd ../bin
  #vi startup.sh
  
  再在"BASEDIR=`dirname$0`"语句前嵌入如下内容。
  
  PATH=/usr/java1.3/bin:$PATH:.
  JAVA_HOME=/usr/java1.3
  TOMCAT_HOME=/home/jakarta-tomcat-4.1.12
  Export PATH JAVA_HOMETOMCAT_HOME
  #vi shutdown.sh
  
  最后,在"BASEDIR=`dirname$0`"语句前嵌入如下内容。
  
  PATH=/usr/java1.3/bin:$PATH:.
  JAVA_HOME=/usr/java1.3
  TOMCAT_HOME=/home/jakarta-tomcat-4.1.12
  Export PATH JAVA_HOMETOMCAT_HOME
  
  至此,Apache和Tomcat服务器软件安装成功,上面是在UNIX(Solaris)平台下构建JSP网站的基本配置。Apache与Tomcat结合支持JSP动态网页开始是通过一个名为"mod_jserv"的插件来实现的,采用这种Apache/Jserv方式配置参数十分复杂,运行效率很低,而且对SSL(一种加密传输方式)的支持也不理想,因此Jakarta工作组新近开发了"mod_jk"插件,它很好地弥补了mod_jserv的缺点,而且能支持Apache以外的多种Web服务。关于这种Apache/Jk方式的实现原理,请参考有关资料。
  
  三、UNIX或LIUNX环境下Web服务器的安全管理与维护
  1、Apache和Tomcat的启动和关闭
  #/home/apache-1.3.27/bin/apachectl start    启动
  #/home/apache-1.3.27/bin/apachectl stop     关闭
  #/home/jakarta-tomcat-4.1.12/bin/startup sh   启动
  #/home/jakarta-tomcat-4.1.12/bin/shutdown sh  关闭
  
  2、Apache和Tomcat的web服务器的安全管理
  
  1)Apache和Tomcat都具有支持安全Socket层(SSL)的功能
  
  在Tomcat中声明安全性,WEB应用程序的安全性主要在相应的Web.xml中设置,Tomcat支持的鉴权机制为HTTP基本鉴权机制BASIC和基于表单的鉴权机制FROM(JSP网站)。
  
  过滤是Tomcat 4的新功能,能够用过滤器来实现以前使用不便的或难以实现的功能,这些功能包括:
  
  资源访问(Web页、JSP页、servlet)的定制身份认证;
  应用程序级的访问资源的审核和记录;
  应用程序范围内对资源的加密访问,它建立在定制的加密方案基础上;
  对被访问资源的及时转换,包括从servlet和JSP的动态输出。
  
  2)Apache的安全设置
  
  Apache服务器设置安全信息--Aclearcase/" target="_blank" >ccess.conf文件中的指令控制着用户对站点的访问及如何进行访问方面的信息。包括文件树的安全、脚本目录安全性、Options指令、AllowOverride指令、使用Order指令、使用有限容器、添加用户鉴定功能等)。
  
  3)Apache模块(PHP网站)
  
  当PHP做为Apache的模块来运行时它继承了Apache的安全设置。任何的文件请求都要经过Apache的严格检查,只有通过检查的请求才被送往PHP。

原文转自:http://www.ltesting.net