Linux下Tomcat与Apache Web服务器整合

apache|web|web服务|web服务器

  1、引言

     基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础、以Web为核心的企业内部网,用户通过低成本、简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据。浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系;同时,Web信息动态的、交互式的发布方式从根本上改变了企业的服务质量,增加了企业的商业机会。

    在许多用户看来,一个Web网站的成败主要在于它所提供的内容和功能,而支持这些内容和功能的Web服务器起着非常重要的作用。

2、Tomcat容器

    Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。

    Tomcat是稳固的独立的Web服务器与Servlet Container,不过,其Web服务器的功能则不如许多更健全的Web服务器完整,如Apache Web服务器(举例来说,Tomcat没有大量的选择性模块)。不过,Tomcat是自由的开源软件,而且有许多高手致力于其发展。

2.1 Linux下安装Tomcat

    在安装Tomcat之前需要安装j2sdk(Java 2 Software Development Kit),安装j2sdk的步骤如下:

1)到http://www.java.sun.com下载j2sdk ,如j2sdk-1_4_2_04-linux-i586-rpm.bin。

2)在终端中转到j2sdk-1_4_2_04-linux-i586-rpm.bin所在的目录,输入命令chmod +x j2sdk-1_4_2_04-linux-i586-rpm.bin,添加执行的权限。

3)执行命令./j2sdk-1_4_2_04-linux-i586-rpm.bin,生成j2sdk-1_4_2_04-linux-i586.rpm的文件。

4)执行命令chmod +x j2sdk-1_4_2_04-linux-i586.rpm,给j2sdk-1_4_2_04-linux-i586.rpm添加执行的权限。

5)执行命令 rpm –ivh j2sdk-1_4_2_04-linux-i586.rpm ,安装j2sdk。

6)安装界面会出现授权协议,按Enter键接受,把j2sd安装在/usr/java/j2sdk1.4.2_04。

7)设置环境变量,在 /etc/profile.d/目录下建立文件java.sh,文件的内容如下:
#set java environment
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/java/jdbc
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

8)执行命令chmod 755 /etc/profile.d/java.sh,给java.sh分配权限。

9)在终端中分别执行命令javac –help和java –version,如果看到有关的信息,则表示j2sdk已成功安装。

    接下来安装tomcat,安装tomcat的步骤如下:

1)访问http://jakarta.apache.org/tomcat/index.html,下载二进制版的tomcat,如jakarta-tomcat-5.5.10.tar.gz,解压到/usr/local目录:
cd /usr/local
gzip –zxvf jakarta-tomcat-5.5.10.tar.gz

2)修改$tomcat/bin/startup.sh和shutdown.sh文件,
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CATALINA_HOME=/usr/local/tomcat-5.5.10
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/java/jdbc
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

3)执行startup.sh即可在http://localhost:8080/ 访问到tomcat的缺省面页.

2.2单独运行Tomcat的优点

1)容易架设。下载Tomcat,设定一些配置,就完成了。不需要花费时间将Web服务器的连接器整合至其它的Web服务器中。

2)不需要担心连接器。永远不需要排除在其它Web服务器与Tomcat之间的任何性能或联机方面的问题。

3)有较佳的安全防护。相对于其它以C、C++所编写的Web服务器,Tomcat比较能忍受远程缓冲区溢位的攻击。因为Tomcat的Java虚拟机是位于网络及操作系统之间,它可以防止几乎所有类型的缓冲区溢位攻击。使用Tomcat的安全防护领域,可以指定对各个资源的访问。

4)容易移植。可以将Tomcat服务器(以及应用程序)移植到不同的服务器、操作系统甚至架构上。因为Tomcat是以Java编写的,因此可以将其整个目录结构的内容复制到其它计算机上运行,而完全不需要任何改变,甚至于新的计算机的架构与原来的不同也一样。

2.3单独运行Tomcat的缺点

1)Tomcat的支持软件比较少。Tomcat内建Web服务器的支持软件比Apache httpd Web服务器少。

2)Tomcat的Web服务器功能少。相对于Tomcat Web服务器,Apache httpd服务器有更完整的功能。

3)虽然Tomcat运行速度快,但还没有Apache httpd快。Tomcat服务器比Apache httpd慢,不过,它还在改进中,而且仍然非常快,快到足以运行今日大多数的企业网站,只是在提供静态页面内容上没有Apache快。

3、Apache Web服务器

    Apache是根据NCSA的服务器发展而来的,NCSA是最早出现的Web服务器程序之一,由伊利诺斯大学Urbana-Champaign分校的美国国家超级计算应用中心开发。在发展初期,Apache主要是一个基于UNIX系统的服务器,它的宗旨就是建成一个基于UNIX系统的、功能更强、效率更高并且速度更快的WWW服务器,这就决定了它是从其他的服务器演变而来的,并且添加了大量补丁来增强它在某一方面的性能,所以它就被命名为“APA+CHy Server(一个补丁组成的服务器)”。发展到今天,Apache已经被移植到很多平台上了。
Apache的开发遵循GPL协议,由全球的志愿者一起开发和维护。在保持强大的功能及不断更新的同时,它仍然是免费的,并且公开源代码。

3.1 安装Apache服务器

    可以通过以下三种方法安装Apache服务器。

1)如果安装的Linux版本中带用Apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工作,并做好基本的配置。

2)使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单。下载软件包apache_1.2.4.e.tar.gz ,执行命令tar xvzf apache_1.2.4.e.tar.gz 完成安装工作。如果使用的是RedHat Linux的话,也可以下载apache_1.2.4.rpm软件安装包,然后使用rpm –ivh apache_1.2.4.rpm命令安装。

3)如果想把Apache服务器充分利用起来的话,就一定要自己编译Apache 定制其功能。 下载包含Apache源代码的软件包apache_1.2.4.tar.gz;然后用tar命令将它解开;将当前目录改变为Apache源代码发行版的src目录;将配置样本文件(Configuration.tmpl)复制为Configuration文件;编辑Configuration文件中的配置选项:
Makefile配置选项:一些编译选项:
. “CC=”一行指定用什么编译软件编译,一般为“CC=gcc”;如果需要将额外的标志(参数)指定给C编译软件,可以使用:
EXTRA_CFLAGS=
EXTRA_LFLAGS=
如果系统需要特殊的库和包含文件,可以在这里指定它们:
EXTRA_LIBS=
EXTRA_INCLUDES=
如果要改变代码优化设置的话,须将下面一句去掉注释,然后改成所需要的值:
#OPTIM=-O2 

    Rule配置选项:用来决定需要什么功能,一般情况下无需改变。 

     模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache灵活性的表现。模块配置行如下所示:

AddModule modules/standard/mod_env.o 
     如果需要Apache服务器具备什么功能,就将那个模块用AddModule语句加到配置文件Configuration中去。
下面列出了Apache的模块功能:

模块名                         功能                                 缺省
mod_access                 提供基于主机的访问控制命令          y
mod_actions                能够运行基于MIME类型的CGI脚本或HTTP请求方法        y
mod_alias                能执行URL重定向服务                         y
mod_asis                 使文档能在没有HTTP头标的情况下被发送到客户端  y
mod_auth                 支持使用存储在文本文件中的用户名、口令实现认证       y
mod_auth_dbm                   支持使用DBM文件存储基本HTTP认证          n
mod_auth_mysql                        支持使用MySQL数据库实现基本HTTP认证              n
mod_auth_anon                        允许以匿名方式访问需要认证的区域                y
mod_auth_external                支持使用第三方认证                  n
mod_autoindex                        当缺少索引文件时,自动生成动态目录列表            y
mod_cern_meta                        提供对元信息的支持                 n
mod_cgi                         支持CGI                 y
mod_dir                         能够重定向任何对不包括尾部斜杠字符命令的请求     y
mod_env                                 使你能够将环境变量传递给CGI或SSI脚本            n
mod_expires                 让你确定Apache在服务器响应请求时如何处理Expires          y
mod_headers                 能够操作HTTP应答头标           y
mod_imap                 提供图形映射支持                      n
mod_include                 使支持SSI                       n
mod_info                                 对服务器配置提供了全面的描述           y
mod_log_agent                         允许在单独的日志文件中存储用户代理的信息       n
mod_log_config                        支持记录日志                     y
mod_log_referer                          提供了将请求中的Referer头标写入日志的功能                 n
mod_mime                 用来向客户端提供有关文档的元信息             y
mod_negotiation                        提供了对内容协商的支持              y
mod_setenvif                 使你能够创建定制环境变量     y
mod_speling                 使你能够处理含有拼写错误或大小写错误的URL请求      n
mod_status                 允许管理员通过WEB管理Apache          y
mod_unique_id         为每个请求提供在非常特殊的条件下保证是唯一的标识         n
在src目录下执行:“. /configure”;
编译Apache:执行命令“make”; 

    将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;将Apache发行版的配置文件:access.conf、httpd.conf、mime.types、srm.conf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。

3.1单独运行Apache httpd的优点

   1)Apache httpd比Tomcat内建的Web服务器快。
   2)较多的软件支持。Apache httpd有庞大的支持软件链接库。
   3)启动与停止快。一般来说,Apache httpd的启动与停止时间都比Tomcat短。

3.2单独运行Apache httpd的缺点

   1)架设比较困难。比起单独运行Tomcat,安装Apache Web服务器并让它与Tomcat协同运行要复杂很多。
   2)会拖慢动态网页内容的服务。
   3)安全漏洞。Apache httpd比较容易受到缓冲区溢位的攻击。
   4)升级比较复杂。

4、Tomcat与Apache的整合

有几种将Tomcat整合到Apache httpd Web服务器的方法:

1)架使用不同的端口号分担负载。

该方法是最容易实现的,只需要在现成的网页目录中假如URL以连接到在同一台Web服务器机器上的Tomcat Web服务器端口(如8080)。实际上还是执行两个完整的Web服务器程序,彼此之间并没有真正的整合。

2)从Apache将请求发送至Tomcat的代理服务器。

该方法会在主服务器中使用HTTP的代理机制。代理机制常会用来将来自网关上运行的Web服务器的Web信息流重新路由至外部因特网上的网站。不过,也可以用来将网站区域或目录的信息流重导至Tomcat Web服务器。

3)使用mod_jk2连接器。

该方法使用运行于现有的Apache httpd Web服务器之内的连接器模块(如mod_jk),并经由特定的协议快速地将请求转送至Tomcat。这是将Tomcat连接至Apache httpd的标准方式。

4)单一进程中执行两个程序。

该方法通过让JVM在Apache httpd的进程空间中运行的方式,可以提供“完全整合”的功能。这是最有效的办法,但也是最依赖于服务器的实现。

【参考文献】
[1] Jason Brittain,Ian F. Darwin,Tomcat: The Definitive Guide,2003
[2] Jason Brittain,Ian F. Darwin著,O’Reilly Taiwan译,朱恩从改编,Tomcat权威指南,2004
[3]http://www.apache.org
[4]http://www.bb.gilet.edu.cn

时间: 2024-11-03 04:15:19

Linux下Tomcat与Apache Web服务器整合的相关文章

Linux下Tomcat与Apache Web服务器的整合

1.引言基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础.以Web为核心的企业内部网,用户通过低成本.简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据.浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系:同时,Web信息动态的.交互式的发布方式从根本上改变了企业的服务质量,增加了企业的商业机会.在许多用户看来,

在Linux下配置最新APache Web服务器和MySql数据库服务器

问题描述 在Linux下配置最新APacheWeb服务器和MySql数据库服务器.要求:1.将配置过程详细记录2.用配置好的系统编写一个java给予MySql数据库的程序

Linux下Tomcat与Apache服务器的整合之一

apache|服务器 引言 基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础.以Web为核心的企业内部网,用户通过低成本.简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据. 浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系:同时,Web信息动态的.交互式的发布方式从根本上改变了企业的服务质量,增加了企业的商业

Linux Apache Web服务器安全的8种安全设置技巧_Linux

Apache服务器是一款开源的WEB服务器,是由非营利组织Apache软件基金会的支持的,我们很多的虚拟主机.VPS等都会使用Apache服务器架构环境,但是任何的架构环境都会遭受各种可能的攻击.安全漏洞的检测.SQL注入.各种拒绝服务攻击等. 作为我们VPS/服务器用户来说,我们一来需要多做备份确保服务器上网站数据的安全,二来还需要随时的观察我们服务器的监控动向,三来需要关注各种最新漏洞安全的更新脚本,作为基础的应用手段,我们需要确保基础的Apache安全设置,从基础上保证服务器的安全. 第一

Linux Apache Web 服务器_服务器

  商业界很快看到了其价值,许多公司建立了主页,利用Web在网上发布消息,并反它作为各种服务的界面,如客户服务.特定产品和服务的详细说明.宣传广千以及是渐增长的产品销售和服务.商业用途促进了环球信息网络的迅速发展.  如果你想通过主页向世界介绍自己或自己的公司,就必须将主页放在一个WEB服务器上,当然你可以使用一些免费的主页空间来发布.但是如果你有条件,你可以注册一个域名,申请一个IP地址,然后让你的ISP将这个IP地址解析到你的LINUX主机上.然后,在LINUX主机上架设一个WEB服务器.你

Apache Web服务器安全设置注意事项

HTTP拒绝服务攻击 攻击者通过某些手段使服务器拒绝对http应答,这使Apache对系统资源(cup时间与内存)需求巨增,最终造成系统变慢甚至完全瘫痪,Apache服务器最大的缺点是,它的普遍性使它成为众矢之的,Apache服务器无时无刻不受到DoS攻击威胁,主要有下边几种  1.数据包洪水攻击  一种中断服务器或本地网络的方法是数据包洪水攻击,它通常使用internet控制报文协议(ICMP,属于网络层协议)包或是udp包,在最简单的形式下,这些攻击都是使服务器或网络负载过重,这意味这攻击者

Apache Web服务器.htaccess文件配置

htAccess是Apache服务器的一个配置文件,具有强大的功能,本文介绍如何编辑该文件,让网站实现封锁某国家IP网段.防止图片.文件盗链.保护主机下的目录与文件.创建自定义的出错页面.把某些特殊的IP地址的请求重定向到别的站点.把老的域名转像新的域名,这些功能. htAccess 文件(Hypertext Access file)是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能. 使用.htaccess挡掉搜寻引擎机蜘

解决Linux下tomcat连接MySQL数据库问题

mysql|解决|数据|数据库|问题 解决Linux下tomcat连接MySQL数据库 在linux下,开发一个web应用,期间调用数据库时总是不成功,如果单独写一个类,并编译执行访问数据库,正常,但是用web应用来调这个类连接数据库,就会出现错误:com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION **

在linux下配置Redhat9+Apache+Mysql+PHP+GD2+Perl

在linux下配置Redhat9+http://www.aliyun.com/zixun/aggregation/14417.html">Apache+Mysql+PHP+GD2+Perl,安装文章的步骤,相信你完全可以配置你的系统 安装环境描述 操作系统:Linux RedHat AS4.0 web服务软件:Apache httpd-2.2.4下载:http://www.apache.org 数据库软件:mysql-5.0.37.tar.gz 下载:http://www.mysql.co