- 浏览: 731292 次
- 性别:
- 来自: 嘉兴
文章分类
- 全部博客 (386)
- Struts1.1 (2)
- Database (18)
- Core Java (15)
- Log4j (4)
- SSH (0)
- Dao (1)
- Architecture Design (1)
- References (2)
- Eclipse&MyEclipse (10)
- Hibernate (7)
- Spring (8)
- JavaMail (1)
- Data Structure And Algorithm (48)
- Struts 2 (2)
- SSI (1)
- SSL (2)
- JSTL (1)
- EJB3 (2)
- NET (2)
- XML (2)
- Components (2)
- Ant (3)
- Multi Thread (1)
- Performance Monitoring (1)
- Web Server (17)
- Oracle (1)
- jQuery (8)
- Regular Expression (1)
- Weblogic (1)
- Exception (1)
- Security (2)
- File Manipulation (1)
- JavaScript (12)
- JVM (2)
- HTML&DIV&CSS (4)
- Android (10)
- Beyond GFW (0)
- Business (0)
- SVN (6)
- 虚拟主机 (1)
- Virtual Host (3)
- My mentality (5)
- OS (15)
- ISPMP (3)
- Magento (5)
- Jsoup&HttpClient (7)
- LINUX (9)
- Database Design (0)
- Power Designer (1)
- TaobaoOpenPlatform (2)
- C/C++ (3)
- Maven (11)
- Quartz (1)
- Load Balance (1)
- Zabbix (4)
- Product&Business (1)
- Pay Interface (1)
- Tomcat (2)
- Redis (1)
- 集群 (1)
- Session (1)
- 共享Session (1)
- Jedis (1)
- jenkins (1)
- 持续集成 (1)
- Web前端 (1)
最新评论
-
aqq331325797:
特意注册账号上来说一句。牛逼!
swagger2.2.2 与 spring cloud feign冲突 -
KitGavinx:
跨顶级域名怎么保持sessionid一致?
Tomcat7集群共享Session 基于redis进行统一管理 -
jaychang:
dujianqiao 写道HI ,能否给一个完整的demo 啊 ...
淘宝订单同步方案 - 丢单终结者 -
GGGGeek:
找了一会儿,感觉mybatis应该没有这种操作,直到发现博主的 ...
mybatis collection list string -
dujianqiao:
HI ,能否给一个完整的demo 啊 ?
淘宝订单同步方案 - 丢单终结者
一、为何要将Apache HTTP Server 与 Tomcat 结合
首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接。事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 8080,装好 tomcat 后通过 8080 端口可以直接使用 Tomcat 所运行的应用程序,你也可以将该端口改为 80。
既然 Tomcat 本身已经可以提供这样的服务,我们为什么还要引入 Apache 或者其他的一些专门的 HTTP 服务器呢?原因有下面几个:
1). 提升对静态文件的处理性能
2). 利用 Web 服务器来做负载均衡以及容错
3). 无缝的升级应用程序
这三点对一个 web 网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个 Tomcat 宕机或者是升级程序导致用户访问不了,而能完成这几个功能的、最好的 HTTP 服务器也就只有 apache 的 http server 了,它跟 tomcat 的结合是最紧密和可靠的。
二、JK简介
JK 本身有两个版本分别是 1 和 2,目前 1 最新的版本是 1.2.19,而版本 2 早已经废弃了,以后不再有新版本的推出了,所以建议你采用版本 1。
注意JK的每个版本都对应一个apache版本。Jk下载可以直接到apache.org官网下载,有多种版本,适用于各种操作系统,地址如下:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
本文以 win32/jk-1.2.28/mod_jk-1.2.28-httpd-2.2.3.so 为例
下载完JK的so模块后,放在${APACHE_HOME}
\modules\mod_jk.so
jk与apahce的版本要匹配,否则apache启动会失败:
- mod_jk-1.2.31-httpd-2.2.3.so is for Apache 2.2.x. It has been build against version 2.2.3, but should work with Apache 2.2.0 and later. Rename tomod_jk.so before putting it in your Apache2.2/modules directory or adjust your LoadModule statement.
- mod_jk-1.2.31-httpd-2.0.52.so is for Apache 2.0.x. It has been build against version 2.0.52, and should work with Apache 2.0.52 and later. Rename to mod_jk.so before putting it in your Apache2.0/modules directory or adjust your LoadModule statement.
三、整合配置
3.1. JK 的配置最关键的有三个文件,分别是
httpd.conf
Apache 服务器的配置文件,用来加载 JK 模块以及指定 JK 配置文件信息
下边在(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
到 Tomcat 服务器的连接定义文件
uriworkermap.properties
URI 映射文件,用来指定哪些 URL 由 Tomcat 处理,你也可以直接在 httpd.conf 中配置这些 URI,
但是独立这些配置的好处是 JK 模块会定期更新该文件的内容,使得我们修改配置的时候无需重新启动
Apache 服务器。
3.1.1 http.conf的典型配置
# (httpd.conf) # 加载 mod_jk 模块 LoadModule jk_module modules/mod_jk.so # Configure mod_jk JkWorkersFile conf/workers.properties JkMountFile conf/uriworkermap.properties JkLogFile logs/mod_jk.log JkLogLevel warn
3.1.2 works.properties配置
如果不需要做负载均衡使用以下配置
# workers.properties # list the workers by name worker.list=s1, status # localhost server 1 # ------------------------ worker.s1.port=8009 worker.s1.host=localhost worker.s1.type=ajp13 worker.status.type=status
无负载均衡的jkstatus的管理页面信息,图片里的worker叫tomcat,说明一下,我只是把work.properties配置文件的s1改成了tomcat而已
访问http://url/jkstatus
如果需要做负载均衡需要以下配置
# workers.properties # list the workers by name worker.list=DLOG4J, status # localhost server 1 # ------------------------ worker.s1.port=8109 worker.s1.host=localhost worker.s1.type=ajp13 # localhost server 2 # ------------------------ worker.s2.port=8209 worker.s2.host=localhost worker.s2.type=ajp13 #可以制定该worker为停止状态 #worker.s2.stopped=1 worker.DLOG4J.type=lb worker.retries=3 worker.DLOG4J.balanced_workers=s1, s2 worker.DLOG4J.sticky_session=1 worker.status.type=status
使用了负载均衡的jkstatus管理页面信息
以上的 workers.properties 。首先我们配置了两个类型为 ajp13 的 worker 分别是 s1 和 s2,它们指向同一台服务器上运行在两个不同端口 8109 和 8209 的 Tomcat 上。接下来我们配置了一个类型为 lb(也就是负载均衡的意思)的 worker,它的名字是 DLOG4J,这是一个逻辑的 worker,它用来管理前面配置的两个物理连接 s1 和 s2。最后还配置了一个类型为 status 的 worker,这是用来监控 JK 本身的模块。有了这三个 worker 还不够,我们还需要告诉 JK,哪些 worker 是可用的,所以就有 worker.list = DLOG4J, status 这行配置。
3.1.3 uriworkermap.properties配置
如果不需要负载均衡,以下配置就可以了
/*=s1 /jkstatus=status #the following types's request will be given to apache http server,so the prefix is '!' !/*.gif=s1 !/*.jpg=s1 !/*.png=s1 !/*.css=s1 !/*.js=s1 !/*.htm=s1 !/*.html=s1
解释以下以上配置:
/*=s1表示对于所有类型的请求都由s1这个worker处理,除了几个例外(gif,jpg,png,css,js,htm,html)这些静态的资源由Apache Http Server处理
如果使用负载均衡,需要以下配置
/*=DLOG4J /jkstatus=status !/*.gif=DLOG4J !/*.jpg=DLOG4J !/*.png=DLOG4J !/*.css=DLOG4J !/*.js=DLOG4J !/*.htm=DLOG4J !/*.html=DLOG4J
解释一下以上的配置:
/*表示所有的请求都由 DLOG4J 这个 worker(使用了负载均衡的,DLOG4J是逻辑的worker,实际就是s1,s2) 进行处理,但是要除去几个例外,/jkstatus 请求由 status 这个worker 处理。另外这个配置中每一行数据前面的感叹号是什么意思呢?感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件,Apache Http Server处理静态资源内容很拿手。
如果使用了负载均衡,那么要注意还需要修改%CATALINA_HOME%/conf/server.xml。
将原先的不使用负载均衡的配置
<Connector port="8109" redirectPort="8443" protocol="AJP/1.3"> </Connector>
改成使用使用负载均衡的,对应workers.properties使用负载均衡配置的两个worker所指向的8109,8209
<Connector port="8109" redirectPort="8443" protocol="AJP/1.3"> </Connector> <Connector port="8209" redirectPort="8443" protocol="AJP/1.3"> </Connector>
在cmd命令行下输入 netstat -ano 可以看到进程号为4520的进程在监听8080,8109,8209端口,如果不使用负载均衡那么,这里只会出现8080,跟8009,当然这个进程是javaw.exe是java虚拟机
至此结束了所有的事情了。
注:服务器段向客户端写入的Cookie内容中含有换行符号会丢失Cookie,将换行符号替换成其他字符以后,Cookie工作正常。
!!!补充:
修改apache的httpd.conf配置文件,如不做修改那么你可以从apache安装目录的logs/error.log
发现
[Wed Jun 01 21:27:16 2011] [error] [client 122.232.110.19] File does not exist: C:/Program Files/Apache Group/Apache2/htdocs/asf-logo-wide.gif, referer: http://jaychang1987.gicp.net/
JK会去C:/Program Files/Apache Group/Apache2/htdocs/找图片,JS,CSS,html等文件,故你的JSP页面就会没有图片,样式了。
所以要修改apache的httpd.conf配置文件,如下,就是将TOMCAT的webapps目录设为DodumentRoot
# # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "D:/Tomcat-5.5.27/webapps" # # This should be changed to whatever you set DocumentRoot to. # <Directory "D:/Tomcat-5.5.27/webapps">
参考资料:http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html
发表评论
-
20步打造最安全的Nginx web服务器
2015-12-22 09:09 1109转自:https://help.aliyu ... -
HTTP状态码
2014-04-12 11:07 778状态码 含义 100 客 ... -
提升tomcat 性能
2014-03-14 10:18 592提升tomcat 性能 apr扩展lib使用apr类库 可以 ... -
通过 Nginx 将爬虫和正常用户访问分开到不同的后端运行
2013-06-15 22:52 16661. [代码]定义 Map 跳至 [1] [2 ... -
apache与tomcat及整合实现负载均衡及集群
2013-06-15 17:57 1411apache与tomcat及整合实 ... -
apache 阻止某段IP访问
2013-06-15 17:05 816可以使用deny和allow来限制访问,比如要禁止202. ... -
APACHE对域名的泛解析
2013-06-15 16:50 1275很多网站都开通blog功能。当今也比较流行的,我在CU上也注册 ... -
tomcat开发技术之与HTTP服务器的集成 (1)
2013-06-14 13:22 907Tomcat最主要的功能是提供Servlet/JSP容器,尽 ... -
Apache Tomcat 泛域名解析
2013-06-07 12:45 2436Apache与Tomcat的结合在此就不赘述,详情可参考我写 ... -
通过apahce的.htaccess文件配置 顶级域名 跳转 www 二级域名
2011-08-31 17:04 1779可以实现在浏览器输入顶级域名(domain.co ... -
在线生成.htaccess文件
2011-08-31 16:56 1008http://www.wangqu.org/htaccess/ ... -
404处理 PHP .htaccess及apache配置
2011-08-30 16:36 1905在PHP网站开发中,在用户访问网站出错、找不到页面时,会出现H ... -
Apache for windows虚拟主机配置方案
2011-08-30 08:56 1254转自:http://www.net.cn/info ... -
万网域名 花生壳 动态解析 TOMCAT 虚拟主机配置
2011-08-21 13:14 3406一、背景介绍 适用于:1.在万网注册了顶 ... -
Tomcat之配置多个虚拟主机指向同一个应用
2011-06-02 09:20 1197当我们需要将多个域名同时指向同一个应用,而且要求不能跟Tomc ... -
Apache+Tomcat集群配置
2011-06-01 21:02 919转自:http://www.iteye.com/topic/1 ...
相关推荐
### mod_jk 各个版本及 Apache 与 Tomcat 的整合方法 在 IT 行业中,Apache 和 Tomcat 的整合是非常常见的需求之一。通过使用 mod_jk 这一模块,我们可以实现 Apache 和 Tomcat 之间的高效通信。mod_jk 是一个负载...
Apache和Tomcat是两种常用的Web服务器和应用服务器。...总之,整合Apache和Tomcat使用mod_jk是一种常见的做法,它能充分利用两者的优势,提供高效、稳定的服务。了解和掌握mod_jk的配置是提升Web服务器性能的关键步骤。
在Apache2.2与Tomcat6.x的整合中,mod_jk模块扮演了关键角色,它是Apache的Jakarta项目的一部分,专门用于连接Apache和Tomcat。 1. **mod_jk模块介绍** mod_jk是Apache与Tomcat间通信的桥梁,它实现了Apache的URL...
### Ubuntu Linux 下 Apache 与 Tomcat 的整合 在 Ubuntu Linux 环境中,Apache 和 Tomcat 的整合是一项常见的任务,旨在实现静态内容通过 Apache 服务器进行高效分发,而动态内容(如 Java 应用)则通过 Tomcat ...
Apache HTTP Server 2.2.4与Tomcat 6的整合是将这两种强大的Web服务器技术结合在一起,以实现更高效的应用程序部署和管理。Apache作为前端服务器处理静态内容,而Tomcat作为后端服务器处理Java应用程序。在这个过程...
在Windows环境下,将Apache HTTP Server和Tomcat集成是常见的服务器配置任务,以便利用Apache的静态内容处理能力以及Tomcat对动态内容(如JSP、Servlet)的支持。以下是一份详细的步骤指南,帮助你理解整合过程。 *...
Apache2与Tomcat的整合主要依赖于一个名为mod_jk的模块,它是Apache的Java连接器,允许Apache与Tomcat之间进行通信。在这个案例中,使用的mod_jk版本是mod_jk-1.2.28-httpd-2.2.3.so,它需要与Apache和Tomcat的特定...
在CentOS 6.4 64位操作系统中,整合Apache和Tomcat以实现多子站的WEB服务,通常会采用JK模坓(mod_jk)作为连接器,这可以提高性能并解决通过代理访问时可能出现的不稳定性。JK模块是Apache Tomcat Connectors的一...
整合Apache和Tomcat主要是为了将Apache的静态资源处理能力和Tomcat的动态内容处理能力结合起来。Apache负责提供静态内容服务,而Tomcat则处理JSP和Servlet请求。这种整合通常通过JK插件(mod_jk)或代理模块(如mod_...
Apache 2.4 和 Tomcat 7 的整合配置主要依赖于 mod_jk 模块,这是一个 Apache HTTP 服务器的模块,用于与 Tomcat 进行负载均衡和通信。`mod_jk.so` 是该模块的动态链接库文件,用于在 Apache 和 Tomcat 之间建立连接...
整合Apache和Tomcat的过程主要包括以下步骤: 1. 安装Apache和Tomcat:首先,你需要分别在Windows系统上安装Apache服务器和Tomcat。确保它们安装在非默认路径,以避免权限冲突。 2. 下载整合工具:这个"apache web...
"Windows下整合Apache和Tomcat"的主题涉及到如何在Windows操作系统上设置一个环境,使得Apache能够有效地分发静态内容,而Tomcat则专注于处理JSP和Java Servlet等动态内容。这种配置可以优化网站的性能,因为静态...
- mod_jk 是 Apache HTTP Server 的一个模块,它作为 Apache 与 Tomcat 之间的桥梁,负责请求转发和响应处理。 - 从 Apache 官方网站下载适用于你 Apache 版本的 mod_jk 模块,通常位于 `mod_jk-版本号.tar.gz` ...
在Linux环境中,这种整合可以通过mod_jk模块来实现,这就是"apache web整合Tomcat工具Linux版"所指的内容。 **Apache HTTP Server** Apache HTTP Server是世界上最流行的开源Web服务器软件,它支持多种操作系统,...
总的来说,Apache2.2与Tomcat5.5的整合配置涉及下载和安装两个组件,配置Apache的httpd.conf文件,创建和编辑workers.properties,以及调整Tomcat的server.xml。这个过程需要对Web服务器和应用服务器的配置有一定的...
- mod_jk模块:这是Apache与Tomcat之间的连接器,下载地址是http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/,文件名需改为mod_jk.so。 - Tomcat:这里是apache-tomcat-6.0.20...
### Apache2.2与Tomcat7.0的整合配置详解 #### 一、背景介绍 在Web开发领域,Apache HTTP Server(简称Apache)与Tomcat是两种非常重要的服务器软件。Apache作为一款开源的Web服务器软件,以其高效稳定而著称;而...