`
tuhaitao
  • 浏览: 375430 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

tomcat + apache http server配置

阅读更多

    tomcat虽然也能处理html,image,js,css这些静态文件的请求,但是与apache http server比起来,还是小巫见大巫了,由于apache没办法处理jsp脚本,这就必须要交由tomcat来处理,当然还有其他应用服务器,这里我们就说说tomcat,所以问题变为:
1.静态文件(image,css,js)等这些静态文件可由apache http server来处理
2.jsp文件交由tomcat来处理

经过这样的配置,可以大大增加网站处理静态文本的能力
下边说下配置的流程,tomcat整合apache http server 主要又apache tomcat提供的jk(http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/ )模块,也可以使用apache2.2.x以后的代理模块,但久经考验的还是jk模块,经过千万亿次请求的东西还是值得让人信赖的。


配置其实很简单,这里先不介绍负载均衡配置,只是简单的集成1个tomcat与1个apache http server

所需环境:
JDK 1.5 +
Tomcat 6.0 +
Apache Http Servier 2.2 +
mod_jk-1.2.28-httpd-2.2.3.so(win32)


1.配置apache http server

本文环境:D:\apache

打开 D:\apache\conf\httpd.conf

增加:

# 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so

# 配置 mod_jk
JkWorkersFile conf/tomcat/workers.properties
JkMountFile conf/tomcat/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn




下边在(D:\apache\conf\)下增加tomcat目录,在tomcat目录下新建workers.properties、
uriworkermap.properties

这里说明一下,workers.properties这个文件是配置jk模块与tomcat通信地址,以及一些约定
uriworkermap.properties 是配置哪些文件由apache http server 处理,哪些由tomcat处理,你也可以在httpd.conf配置下边的内容,但是由于这些属性是jk模块所独有的,为了让我们更改配置后不重新启动apache http server,这里分开配置。

workers.properties配置如下:

#
# workers.properties
# by haitao.tu 2009-7-22
#


# list the workers by name

worker.list=tuz, status

# localhost server tuz
# ------------------------
worker.tomcat.port=8009
worker.tomcat.host=localhost
worker.tomcat.type=ajp13

worker.tuz.type=lb
worker.retries=3
worker.tuz.balanced_workers=tomcat
worker.tuz.sticky_session=1

worker.status.type=status



    以上的 workers.properties 配置就是我们前面那个屏幕抓图的页面所用的配置。首先我们配置了类型为 ajp13 的 worker tuz,它指向服务器上运行在端口 8009 的 Tomcat(tomcat默认开启有8009 ajp1.3端口) 上。接下来我们配置了一个类型为 lb(也就是负载均衡的意思)的 worker(由于我这里只是配置了一个tomcat所以这里也就没有负载意思,只是先这样写,有时间我写一个负载的demo),它的名字是 tomcat,这是一个逻辑的 worker,它用来管理前面配置的物理连接 tuz,将来还可以配置多个。最后还配置了一个类型为 status 的 worker,这是用来监控 JK 本身的模块。有了这两个 worker 还不够,我们还需要告诉 JK,哪些 worker 是可用的,所以就有 worker.list = tuz, status 这行配置

    下来便是 URI 的映射配置了,我们需要指定哪些链接是由 Tomcat 处理的,哪些是由 Apache Http Server直接处理的,看下面这个文件你就能明白其中配置的意义:

# 映射文件配置
/*=tuz
/jkstatus=status

!/*.gif=tuz
!/*.jpg=tuz
!/*.png=tuz
!/*.css=tuz
!/*.js=tuz
!/*.htm=tuz
!/*.html=tuz



这里简单解释下:

    所有的请求都由 tuz这个 worker 进行处理,但是有几个例外,/jkstatus 请求由 status 这个 worker 处理(这个主要是监控jk的页面,由jk模块处理), 感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件,很简单吧~

下边测试一下:
首先在apache http server的htdocs目录,我的环境是
D:\apache\htdocs
在这个目录新建一个test目录,在里边放入Sunset.jpg图片(windows自带壁纸)

然后在tomcat的webapps目录,我的环境是
D:\apache-tomcat-6.0.18\webapps
在这个目录里也新建一个test目录,在里边放入写好的jsp文件:
index.jsp

<html>
	<body>
		<h1>tomcat 6.0.18</h1>
		<img src="Sunset.jpg">
	</body>
</html>



然后启动tomcat与apache http server

打开链接:http://localhost/test/index.jsp

 

成功时可以看到apache http server通过jk模块把index.jsp的请求通过tomcat开启的8009端口 通知tomcat,然后由tomcat的处理jsp请求,但apache http server自己处理了图片的请求。

 

先写这么多吧,自己也是现学现卖,主要还是把学到的东西记下来,以供日后查看。

 





   



 

分享到:
评论
2 楼 tuhaitao 2012-02-25  
xinyu_yang77 写道
今天看到Tomcat文档中一句话,如果只有一个Tomcat实例的话,选用前端web server性能不好。

When using a single server, the performance when using a native webserver in front of the Tomcat instance is most of the time significantly worse than a standalone Tomcat with its default HTTP connector, even if a large part of the web application is made of static files.
<http://tomcat.apache.org/tomcat-7.0-doc/connectors.html>

是的,单台物理机器的情况下,会差,但在多台机器的情况下性能会有明显的提高,可能翻译的时候有偏差,using a single server 表示的是一台物理机器,这是由于,CPU、内存都有限的情况下,2个进程来回切换,有所消耗,如果并发数到一定的时候,就必须拆分到多台机器上去了,吞吐量,处理速度会有很大的提升:)
1 楼 xinyu_yang77 2012-02-17  
今天看到Tomcat文档中一句话,如果只有一个Tomcat实例的话,选用前端web server性能不好。

When using a single server, the performance when using a native webserver in front of the Tomcat instance is most of the time significantly worse than a standalone Tomcat with its default HTTP connector, even if a large part of the web application is made of static files.
<http://tomcat.apache.org/tomcat-7.0-doc/connectors.html>

相关推荐

    tomcat+apache实现集群/负载均衡

    tomcat+apache实现集群/负载均衡,只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session1. 修改tomcat1, tomcat2的...

    cas-server+cas-client+apache-tomcat+comment-logging

    包括cas-server-3.4.11-release.zip+cas.5.2.3.tar.gz+cas-client-.3.2.1-release.zip+apache-tomcat-6.0.29.zip.zip+comment-logging-1.2-bin.tar.gz,一次下载,几乎所有可能遇到的问题都能够解决。

    Apache_HttpServer与Tomcat分布式配置

    Apache_HttpServer与Tomcat分布式配置

    windows_server2003+tomcat+iis6整合

    workers.tomcat_home=D:\Program Files\Apache\Tomcat 6.0 # jdk物理路径 workers.java_home=D:\develop\jdk6 ps=\ worker.list=ajp13 worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=...

    apache-tomcat-7.0.75.zip

    Apache是普通服务器,本身只支持html即普通网页。...Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。Apache,nginx,tomcat并称为网页服务三剑客,可见其应用度之广泛。

    apache-tomcat-7.0.57

    Apache是普通服务器,本身只支持html即普通网页。...Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。Apache,nginx,tomcat并称为网页服务三剑客,可见其应用度之广泛。

    Apache Tomcat 7.0 安装版 (需要配置环境变量)

    Apache Tomcat 7.0 安装版 (需要配置环境变量) Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然...

    apache-tomcat-8.5.3.tar.gz

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    apache-tomcat-10.0.0-M4.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    apache-tomcat-6.0.20

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet...Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。

    apache-tomcat-6.0.9

    Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML 格式的配置文件来进行配置。  此版本为稳定版,修复了前一版的许多bug。值得注意的是,此次提供的二进制zip包分为通用版和其他系统架构版本。源码包不受...

    apache-tomcat-8.5.2.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    apache-tomcat-8.5.2.exe

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    apache-tomcat-8.5.2.tar.gz

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    apache-tomcat-8.5.19.exe

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    APACHE 2.2.9+TOMCAT6.0.18配置负载均衡

    APACHE 2.2.9+TOMCAT6.0.18配置负载均衡 目标: 使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求: 1、 Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。 2、 为系统...

    apache-tomcat-6.0.48

    Apache是普通服务器,本身只支持html即普通网页。不仅可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问...Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配

    apache-tomcat-9.0.0.M8.tar.gz

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    apache-tomcat-8.5.19.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    apache-tomcat-8.5.3.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

Global site tag (gtag.js) - Google Analytics