`
Qieqie
  • 浏览: 340008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Apache httpd和Tomcat结合配置web应用 应对互联网用户大量请求

阅读更多
摘要:本文阐述如何配置使用apache作为前端web服务器,Tomcat作为后端服务器处理互联网用户的站点请求。

1、软件版本:
  Tomcate 5.5;Apache Httpd 2.2;JDK 1.6;S6240本;WinXP Home Edition操作系统;

2、需求概况:
  对外总共有5个服务:www.paoding.net, passport.paoding.net, office.paoding.net, zhidao.paoding.net, post.paoding.net 。这5个服务分别对应5个web应用。由apache httpd作为互联网接入服务器,在80端口接收对这5个服务的请求。apache httpd再将这5个请求分别对应到不同的后端web服务器(Tomcat)处理。这种架构具有多种好处,其中最大的一条是:能够将负载简单地按功能应用分担到不同的物理机器上。另外还有一些好处,比如便于升级、能够利用apache httpd处理静态文件快速的特点离补java web服务引擎对静态资源相对较弱的缺点,。。。。

3、先行步骤:
    3.1  在C:\WINDOWS\system32\drivers\etc\host文件中,配置以上5个域名映射到本机即127.0.0.1,同时配置service域名,大致如下:
    127.0.0.1       www.paoding.net
    127.0.0.1       passport.paoding.net
    127.0.0.1       office.paoding.net
    127.0.0.1       zhidao.paoding.net
    127.0.0.1       post.paoding.net

    127.0.0.1       www.service.paoding.net
    127.0.0.1       passport.service.paoding.net
    127.0.0.1       office.service.paoding.net
    127.0.0.1       zhidao.service.paoding.net
    127.0.0.1       post.service.paoding.net

    3.2  以passport为例,建立一个普通的web application,创建一个jsp,命名为index.jsp,jsp页面上输出“你好,这是passport系统”简单几个字

4、在tomcat中配置passport应用,并确认可用:
    4.1 $catalina_home/confi/server.xml文件中,增加Host元素,如下内容:

      <Host name="passport.service.paoding.net"  unpackWARs="true" autoDeploy="true"
             xmlValidation="false" xmlNamespaceAware="false"/>

    4.2 $catalina_home/conf/Catalina下创建passport.service.paoding.net目录,并在这个目下下创建名为ROOT.xml的文件,文件内容如下:

        <Context docBase="E:/paoding.net/workspace/Passport/WebContent"
                 privileged="true" antiResourceLocking="false" antiJARLocking="false">
        </Context>

docBase具体配置路径由你的web application路径确定,应根据你的情况进行调整。

   4.3 在浏览器访问:http://passport.service.paoding.net:8080/index.jsp,确认正确浏览到该页面。成功后不要关闭Tomcat服务器

5、配置Apache httpd:
    5.1 找到apach/conf/httpd.conf文件,确认以下这些文字行前面没有"#"注释号:

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

    5.2 增加VirtualHost元素,如下:
        NameVirtualHost *:80
        <VirtualHost *:80>
                 ServerName   passport.paoding.net
                 ProxyIOBufferSize 8192
                 ProxyRequests Off
                 ProxyVia Full
                 ProxyPass / http://passport.service.paoding.net:8080/ smax=5 max=20 ttl=120 retry=300
        </VirtualHost>

     5.3 在浏览器中访问http://passport.paoding.net/index.jsp,确认输出的内容与在Tomcat输出内容一致。如果你看到这个访问能够成功,则表示这次试验完全成功。

6 总结

其他的服务配置类似如此。具体网站时,会配置多个服务器,可以将不同的应用分布在不同的服务器当中。[也就是变更host文件的地址映射]
分享到:
评论
11 楼 xuehongliang 2007-06-08  
楼主给出的方案不错,不过对这方面了解的不多.
如果能在详细一些可以对初学者有更大的帮助,其中不明白的是在应用服务器
之上加上Apache怎么样达到大用户量的请求的呢?
10 楼 ak478288 2007-06-08  
楼主的方案适合根据机器的性能进行配置,把性能影响不大的应用放到性能差一点的机器上。在一定程度上能缓解一小部分压力。
如果要真正解决压力问题的话,这样做是不行的
9 楼 chenqj 2007-05-27  
不明白你在应用前面放一个apache干嘛用
不同应用的请求直接访问不同的服务器不就行了
流量大的时候,一个apache是无法满足性能需求的
另外一个慢的应用就可能使所有应用不能访问
也许是我太笨,没看懂楼主的方案,呵呵
8 楼 chenqj 2007-05-27  
jdk 6.0还是很稳定的吧,我们已经用了好几个月了。
7x24小时在线系统,千万级访问量,没因为jdk发生过什么问题
7 楼 dingyuan 2007-05-26  
这5个网站session如何共享呢?
6 楼 kevinliang 2007-05-26  
能不能给的全一点啊,你说的有点粗糙,对于刚接触的人,配置很难成功,希望能写的全点,我按照这个配置,不成功啊,还有要注意哪些,谢谢了!
5 楼 Qieqie 2007-02-07  
frankiehuang 写道
Windows xp Home?大量请求?

JDK 6.0也过于新,用于生产系统?

我看你的架构是个实验系统吧?



示例性给出一个东西,同时告知示运行的环境,应该是一种起码的道德。
可以把xp home换成你喜欢的操作系统,jdk换成你认为ok的版本,对本帖子内容没有任何影响。

这种架构不是什么实验系统,实实在在的在现实中普遍被使用。
[几百万用户的网站使用类似这种架构用的好好的]
[不一定是apache,同时apache也不是最好的;同时前后服务器之间连接还有其他文章可做]

了解高效的Web服务器和java web服务器的各自优缺点,以及帖子中阐述的一些其他特性,你就知道这是一种不错选择, not 纸面谈兵

JDK6.0为什么不能用于“生产系统”,给点具体的理由?   或者请你给出升级jdk时你遇到的具体困难,这里肯定有人帮你搞定。
4 楼 frankiehuang 2007-02-07  
Windows xp Home?大量请求?

JDK 6.0也过于新,用于生产系统?

我看你的架构是个实验系统吧?
3 楼 galaxystar 2007-02-04  
基于IP分发,LVS应该比较流行的!
均衡负载里,我认为缓存动态内容也是提升高负载的诀窍之一!
我使用ESI,基于squid解析esi,做到缓存动态内容!
其中,缓存载体,我也喜欢memcache!

我的那些文章是从CSDN转的!怕收藏链接,以后找不到了,直接copy过来了,赖得加转载!呵呵!
2 楼 Qieqie 2007-02-04  
galaxystar 写道
你这边只是对不同二级域名做了一个代理的重定向,即针对不同的应用进行了分离,没有真正起到负载均衡的作用!
如果passport.paoding.net域名的流量非常大,本身tomcat还是需要承受相同量的load!
而且apache属于应用层load balance,比起二层,三层,四层的均衡负载,性能低很多!
如果各个域名都是一套系统,不如根据请求进行分发!让tomcat集群可以跨应用处理!这样高流量应用分布到5台中间服务器上,效率可以高很多!


超大型网站很多都要做特别处理,没有一成不变的通用套路。在负载方面不仅仅要做应用方面的分离,还要把同样的应用部署在不同的物理机器上,通过共享架构实现(可能使用hash将同类型数据存放在不同的共享服务器中,参考memcached)数据共享,或失效通知的方式达到数据一致。

但是,利用apache 或lighttpd等和tomcate/resin之类的结合也是很常见的,能够大大提升性能的,以及进行负载分担,做起来非常简单,“性价比”高。大多数互联网站均可以采用类似的技术。

当然对于超大型,偶瞄了楼上的文章,列出一些参考目录如下(原创的?ZT?):


1、使用负载均衡技术建设高负载的网络站点
2、负载均衡技术全攻略
3、讨论:负载均衡服务器宕机怎么办?!


对了,楼上的,你具体使用什么技术分发请求?
1 楼 galaxystar 2007-02-04  
你这边只是对不同二级域名做了一个代理的重定向,即针对不同的应用进行了分离,没有真正起到负载均衡的作用!
如果passport.paoding.net域名的流量非常大,本身tomcat还是需要承受相同量的load!
而且apache属于应用层load balance,比起二层,三层,四层的均衡负载,性能低很多!
如果各个域名都是一套系统,不如根据请求进行分发!让tomcat集群可以跨应用处理!这样高流量应用分布到5台中间服务器上,效率可以高很多!

相关推荐

    apache web整合Tomcat工具Linux版

    Apache Web服务器和Tomcat是两种常见的Java应用服务器,它们在Web开发中扮演着重要的角色。Apache主要用于处理静态内容,而Tomcat则专长于运行Java Servlets和JavaServer Pages(JSP)。为了将这两个强大的工具结合...

    apache_tomcat配置

    Apache Tomcat是一款广泛应用的开源Java Servlet容器,它实现了Java EE的Web部分,特别是Servlet和JSP规范。在本文中,我们将深入探讨Apache Tomcat的配置过程,并基于提供的资源进行讲解。 首先,Apache Tomcat的...

    apache web整合Tomcat工具

    Apache Web服务器和Tomcat是两种广泛使用的开源软件,分别用于处理静态内容和Java应用程序的运行。在Web开发中,为了充分利用两者的优势,通常会将它们整合在一起,以便Apache处理静态资源,而Tomcat则处理动态内容...

    apache2.4+tomcat7+mod_jk.so_整合配置

    6. **文档和示例**:`apache2.4+tomcat7整合配置` 压缩包中的 "dome" 可能包含配置示例,帮助用户快速理解和实现这个整合。文档则会详细解释每个配置文件的用途和配置项的含义,是学习和解决问题的重要参考资料。 ...

    Apache2.2与tomcat7 集群配置

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而Apache HTTP Server(简称Apache)和Tomcat作为两个广泛使用的开源软件,常被结合使用来处理Java Web应用。Apache2.2作为流行的HTTP服务器,提供了强大的静态...

    apache和tomcat配置总结

    Apache 和 Tomcat 配置是部署 Web 应用的关键步骤,尤其当需要搭建集群环境时。Apache 通常作为前端服务器处理静态内容,而 Tomcat 作为应用服务器处理动态 Java 应用。以下是对Apache和Tomcat配置的详细总结: 1. ...

    apache和tomcat整合配置文件

    - 对于每个Web应用,Tomcat都需要一个`&lt;Context&gt;`元素,它定义了应用的根路径和加载位置。如果应用的WAR文件位于`webapps`目录下,通常不需要手动配置,但如果你想自定义路径,可以在这里进行设置。 在整合过程中...

    Apache2.2+Tomcat6 配置

    在IT行业中,集成Apache2.2与Tomcat6是一个常见的任务,这主要涉及到Web服务器与应用服务器的联合部署,以实现动态和静态内容的高效分发。Apache2.2是一个强大的HTTP服务器,常用于处理静态内容,而Tomcat6则是一个...

    Apache和Tomcat集群配置步骤(Apache2.2,Tomcat6.0).

    ### Apache和Tomcat集群配置详解 #### 一、软件准备 在进行Apache和Tomcat集群配置之前,首先需要准备所需的软件资源。...通过以上步骤,可以成功搭建Apache和Tomcat集群,实现高效的Web应用服务器环境。

    Apache+Tomcat服务器集群配置详细步骤

    在现代Web开发中,随着业务规模的不断扩大和用户需求的日益增长,单一服务器往往难以满足高性能、高可靠性的要求。为了应对这一挑战,通常采用Apache+Tomcat服务器集群的方式。这种方式不仅能够提升系统的响应速度和...

    apache+tomcat整合配置

    Apache和Tomcat是两种常用的Web服务器,Apache主要处理静态资源,而Tomcat则是一个Java Servlet容器,用于运行Java Web应用程序。将Apache与Tomcat整合,可以实现动态和静态内容的高效分发,提高Web服务的性能。下面...

    Apache2.4+tomcat8.0+Jk

    Apache2.4、Tomcat8.0以及JK模块的结合使用是实现Web服务器与应用服务器之间负载均衡的一种常见方案。Apache作为前端服务器处理静态资源请求,而动态内容(如Java Web应用)则由Tomcat这样的Java应用服务器处理。JK...

    Apache与Tomcat 整合发布web

    Apache和Tomcat是两个在Web开发中常用的服务器软件。Apache主要作为HTTP服务器,负责静态资源的处理,如HTML、CSS、JavaScript等文件。而Tomcat则是一个Servlet容器,主要用于运行Java Web应用程序,包括JSP和...

    Apache2.2+Tomcat5.5整合配置教程

    总的来说,Apache2.2与Tomcat5.5的整合配置涉及下载和安装两个组件,配置Apache的httpd.conf文件,创建和编辑workers.properties,以及调整Tomcat的server.xml。这个过程需要对Web服务器和应用服务器的配置有一定的...

    apache2与tomcat整合

    Apache2与Tomcat整合是为了实现更高效的Web服务部署,特别是在处理高并发和负载均衡时。Apache作为成熟的HTTP服务器,常被用作前端服务器,负责静态资源的处理和动态请求的分发,而Tomcat作为Java应用服务器,主要...

    Apache与tomcat配置

    Apache 和 Tomcat 配置是将这两个开源软件结合在一起,以提供更强大的Web服务功能。Apache HTTP服务器作为静态内容的高效处理者,而Tomcat则处理Java Servlets和JSPs(JavaServer Pages)。以下是对Apache httpd....

    windows下整合apache和tomcat服务器的方法

    4. 配置文件修改后,重启Apache和Tomcat以应用新的配置。 完成以上步骤后,Apache和Tomcat就已经成功整合,能够协同处理静态和动态内容。这种整合方式对于处理混合型网站特别有效,既能保证静态资源的快速响应,又...

Global site tag (gtag.js) - Google Analytics