Apache HTTP server 和 Tomcat server 整合,一般是希望对于用户只公布 Apache HTTP server 的网址,而 Tomcat 的网址则不公布,扮演一个幕后英雄的角色。访问 Tomcat 的 HTTP 请求,通过 Apache 转发给 Tomcat,Tomcat 处理完后,将 HTTP 回应返回给 Apache,然后 Apache HTTP 回应发回给用户端浏览器。
Apache HTTP server 和 Tomcat server 直接的 HTTP 数据传输,有很多种方法。
方法一,使用 mod_jk。很多网站上介绍到 Apache HTTP server 和 Tomcat server 整合的时候,都是在介绍 mod_jk.so 的使用,这是一种比较老的方法,并且需要额外下载 mod_jk。Apache 和 Tomcat 的默认配置文件都需要改动。
方法二, URL rewrite,也就是对于指定格式的 URL,转发给某个 Tomcat 的网址。这里所说的指定格式,是指 Apache 所使用的正则表达式,通俗地将,是一种类似 * 的一种比较高级通配符。这种方法不需要下在额外的文件,只需要配置 Apache。
方法三,mod_proxy_ajp,仅在 Apache 2.1 及以后的版本中可用,Apache 自带的一个新功能模块。这时 Apache 使用 Apache JServ Protocol 与 Tomcat 通讯。不需要下在额外的文件,需要改动Apache 和 Tomcat 的默认配置文件都需要改动。
方法四,mod_proxy。其实 mod_proxy 既可以做类似于 Wingate 一样的公司局域网共享上网代理,也可以做反向代理(Reverse proxy)。这里使用的是反向代理功能,用户端浏览器不需要把代理服务器改成这里的 Apache 地址。mod_proxy 是 Apache 自带功能,并且配置比较简单。
这篇文章介绍 Apache 反向代理转发 HTTP 请求到 Tomcat 的配置。比较简单实用。
下载 Apache web server 2.2,安装完成后,修改安装目录下的 conf/httpd.conf 文件,将以下两行前的注释字符 # 去掉。
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
在这个配置文件最后,加上
ProxyPass /app1 http://<tomcat_server_address>:port/url1
ProxyPassReverse /app1 http://<tomcat_server_address>:port/url1
保存配置文件后重新启动 Apache 就可以了。当用户访问
http://<apache_server_address>/app1 的时候,Apache 后台自动将请求转发给 Tomcat ,用户只认为 Apache server 就是他所要的应用服务器。
细心的作者可以看到,Tomcat 那边没有做任何改动,是不是说明,如果 Tomcat 换成 JBoss,或者 IBM Websphere,或者 BEA Weblogic ,也可以用 Apache 来转发呢?答案是,确实如此!!
这里需要解释的是, Apache 反向代理只做 HTTP 透明转发,因此,Tomcat 那边,如果使用 servelet API 获取 request url, server info,等等,都是 Tomcat 的。在Tomcat 上的 JSP 或者 HTML 文件里面,都应该是相对路径,不应该使用绝对路径,更不能使用带 Tomcat 地址的 URL。这应该不是太高的要求,对不?
目前最新版的 Apache 自带的 cache ,只能配置成 server 或者 virtual host 一级的,没有办法配置到 URL 一级。好在一般的 J2EE 应用性能问题,一般都在动态网页部分,静态网页很好,因此也没有太大关系。
对于要求比较高的应用,比如用户量多的新闻网站或者论坛网站,如果要求是用 Apache 缓冲后台的动态网页,比如说,我的首页可以允许缓存一分钟,则在这一分钟内,比如有两千次用户访问 http://somehost/index.jsp,只有第一次用户访问,Apache 会把请求转发到 Tomcat,其余的 999 次访问,都是由 Apache 从缓冲中取出这个页面返回给用户看。这样后台的动态网页服务器的负荷会小很多。以目前的 Apache 最新版本来说,使用反向代理达不到这个要求,应该使用 Apaceh 新建一个 virtual host ,换成使用 URL rewrite。这与题目无关,就此打住。
分享到:
相关推荐
IIS反向代理Apache、Tomcat、隐式URL教程
apache tomcat 反向代理,http502错误,百度搜的解决不了问题 a.com 可以访问,www.a.com 无法访问http502错误
linux apache反向代理配置,写的有点乱,但是可以用,里面有说明文档 先弄 apache和tomcat整合 把80端口给apache 举例 tomcatA 8080 tomcatB 8081 在apache的httpd.conf里写反向代理,用户名指向tomcat的端口,具体...
反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档
- 规则名称:可以自定义,例如“Apache反向代理”。 - 匹配URL:输入`.*`,表示匹配所有请求。 - 重写目标:设置为“向内部服务器发送请求”,地址填写`http://127.0.0.1:8080/{R:0}`。这里的`{R:0}`代表原始URL...
### Apache2.4+Tomcat8 反向代理集群配置详解 #### 一、概述 在Windows环境下配置Apache2.4与Tomcat8的反向代理集群,涉及到多个步骤和技术要点,包括Apache与Tomcat的基本安装配置、负载均衡以及Session共享机制...
下载完成后,将压缩包解压到位,并将多余的 ...2、安装配置 Apache 环境。 3、安装配置 Tomcat 集群环境。 具体的详细操作步骤及参数详解请参考: https://blog.csdn.net/hello_world_qwp/article/details/79698334
windows下apache+tomcat反向代理模式配置负载均衡
综上所述,这个“Tomcat反向代理机制视频”为开发者和系统管理员提供了一个全面的学习资源,通过三个阶段的详细讲解,帮助他们掌握如何在实际项目中运用Tomcat的反向代理功能,提升系统性能和安全性。无论是对Tomcat...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而`nginx`和`tomcat`的结合使用就是一种常见的解决方案。`nginx`作为一款高性能的反向代理服务器和负载均衡器,常用于处理静态资源,而`tomcat`则作为Java应用...
### Nginx 反向代理实现多 Tomcat 负载均衡详解 #### 一、基础知识概述 在深入了解如何利用 Nginx 实现对多个 Tomcat 的负载均衡之前,我们首先来简要回顾一下几个核心概念: - **Nginx**:是一款高性能的HTTP和...
这个软件就是通过apache反向代理方式实现效果,项目使用tomcat发布,apache代理服务至tomcat,这里tomcat的配置就列出来了
综上所述,Nginx作为反向代理与Tomcat服务器结合使用,可以实现Web应用的高并发处理和负载均衡。这种组合在生产环境中非常常见,能够有效地提高服务的稳定性和性能。在部署和配置时需要综合考虑操作系统、应用服务器...
本文将详细介绍Apache HTTP Server与Tomcat的三种连接方式:独立模式、代理模式和集成模式。 一、独立模式 在独立模式下,Apache和Tomcat作为两个独立的服务器运行。Apache主要负责处理静态内容,如HTML、CSS、...
在实际应用中,Tomcat常与其他软件集成,如Apache HTTP Server(通常称为Apache,非此处的标签“阿帕奇”)进行负载均衡和反向代理,提供更高的性能和安全性。Apache HTTP Server是一个流行的HTTP服务器,负责处理...
JK模块是Apache的负载均衡和反向代理模块,使得Apache能够处理静态内容,而将动态内容的处理交由Tomcat完成。 【描述】中提到的“安装配置说明文档”是非常重要的,因为它提供了详细步骤来指导用户如何正确地安装和...
综上所述,Apache 和 Tomcat 的整合涉及了 Apache 的模块加载、反向代理配置,以及 Tomcat 的集群和连接器设置。通过这种方式,我们可以实现一台主机上的单站点集群和负载均衡,从而提升网站的可用性和性能。
3. **配置Apache反向代理** 在Apache的配置文件中,定义一个虚拟主机,并设置反向代理到Tomcat。以下是一个基本示例: ```apacheconf *:80> ServerName yourdomain.com ProxyPreserveHost On ProxyPass / ...
1. Nginx 作为前端服务器,负责处理静态资源请求,提供 SSL/TLS 加密,进行负载均衡,同时作为反向代理,将动态请求转发给 Apache 或 Tomcat。 2. Apache 可以作为动态内容处理器,尤其是当应用使用 PHP 或其他 ...
1. **Apache mod_proxy模块**:Apache的mod_proxy模块是实现Apache与Tomcat通信的关键,它允许Apache作为反向代理,将HTTP请求转发到Tomcat实例。 2. **虚拟主机(Virtual Hosts)**:在Apache配置中,需要设置虚拟...