`
我会试一下
  • 浏览: 45028 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多

经常用到, 还总是忘记, 从这里收藏过来的: http://blog.csdn.net/jacklondon/archive/2006/09/08/1194992.aspx

 

    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。这与题目无关,就此打住。

<!-- google_ad_section_end -->
分享到:
评论

相关推荐

    用apache配置反向代理服务器

    #### 四、多服务器环境下的反向代理配置 如果局域网中有多个服务器(如服务器A、B、C等),并且希望所有这些服务器都能够被外部网络访问,那么可以通过以下步骤实现: 1. **选择一台服务器作为反向代理**:例如...

    apache反向代理和负载均衡总结

    本文将深入探讨Apache反向代理与负载均衡的配置及应用,帮助读者更好地理解和掌握这两项关键技术。 #### 反向代理概述 反向代理是一种网络架构模式,其中代理服务器接收客户端的请求,然后将这些请求转发给内部...

    Apache正反代理原理

    正代理配置 虽然Apache可以配置为正代理服务器,但在实际应用中较为少见。这是因为正代理通常用于企业内部网络中,用于控制员工对外网的访问,而Apache更常被用作Web服务器或反向代理服务器。如果需要配置Apache为...

    apache for linux安装

    Apache是一款开源、免费的Web服务器软件,它能够解析HTTP协议,处理来自Web浏览器的请求,并将静态网页或动态生成的网页返回给用户。由于其高度可定制性和丰富的模块扩展,Apache被广泛用于各种规模的网站和应用。 ...

    apache反向代理

    - 为了使Apache能够正确地从局域网内的Web服务器获取内容并返回给外部用户,需要在防火墙的`/etc/hosts`文件中添加以下记录: ```plaintext 192.168.2.2 weba.company.com 192.168.2.3 webb.company.com 192.168...

    配置Nginx前端Apache后端服务器

    当用户请求到达Nginx时,Nginx根据规则判断是否应直接返回静态文件或转发请求至Apache进行动态内容处理。这一过程不仅提高了安全性,还增强了网站的性能。 ##### Nginx location指令 `location`指令在Nginx配置中至...

    Ubuntu环境keepalived+Apache双活机制配置参考

    创建`check_apache.sh`脚本来检查Apache状态并返回退出码。 **3. Slave主机配置** 在slave主机上,将`state`设置为`BACKUP`,其他配置基本相同。 **4. 配置定时任务** 在两台服务器上创建一个定时任务,用于定期...

    Windows环境下的tomcat + apache配置(绝对实践操作版).rar

    - 访问一个测试的JSP页面,如果正确配置,请求应该被Apache接收,通过`mod_jk`转发到Tomcat处理,然后返回结果给浏览器。 5. **优化与安全**: - 为了提高性能,可以根据需要调整`mod_jk`的工作线程数、连接超时...

    Apache的ProxyPass指令详解

    `ProxyPass`指令用于配置Apache服务器作为反向代理服务器的角色,将来自客户端的请求转发到另一个服务器处理,并将结果返回给客户端。这种方式下,Apache并不扮演传统代理的角色,而是作为远程服务器的一个镜像存在...

    apache2.4 最新版代理weblogic的插件so,亲测可用

    `mod_wl`模块是Apache的一个插件,它使得Apache能够与WebLogic Server通信,实现这种代理配置。 标题中提到的是`mod_wl_24.so`,这是一个针对Apache 2.4版本的共享对象(SO)文件,它是`mod_wl`模块的实现,用于...

    Apache服务器中设置端口映射和反向代理的方法.docx

    而HTTP的反向代理配置类似,但不需要启用SSL: ```apacheconf Listen 80 *:80&gt; ProxyRequests On ProxyPass / http://example.com/ ProxyPassReverse / http://example.com/ ``` 这里,HTTP请求将被转发到...

    Apache和Tomcat整合配置实现网站目录搭建

    现在,当用户访问`http://example.com/app`时,请求将被Apache代理到Tomcat,Tomcat处理完动态请求后,响应再通过Apache返回给用户。静态文件则直接由Apache处理,无需经过Tomcat。 这个配置过程使得Apache和Tomcat...

    tomcat与Apache配置

    这样,Apache就成为了前端的反向代理,而Tomcat作为后端的应用服务器。 配置Apache和Tomcat的集成涉及以下几个步骤: 1. **安装mod_jk**:首先,你需要在Apache服务器上安装mod_jk模块。这通常涉及到下载mod_jk的...

    Apache HTTP Server 与 Tomcat 的三种连接方式介绍

    Tomcat处理完请求后,结果直接返回给Apache,再由Apache返回给客户端。这种方式可以提高系统性能,因为Apache可以缓存静态内容,并且可以负载均衡多个Tomcat实例。 三、集成模式(例如 mod_jk 和 mod_proxy_ajp) ...

    apache服务器负载均衡方案

    1. **基于代理的负载均衡**:Apache通过配置代理模块(`mod_proxy`、`mod_proxy_http` 和 `mod_proxy_balancer`)实现对请求的分发。 2. **轮询算法**:默认情况下,Apache使用轮询算法将请求平均分配给各个后端...

    Apache_2.4.23-x86-no-ssl.zip

    安装完成后,Apache会作为一个服务运行在后台,监听HTTP请求并返回相应的Web内容。 对于不包含SSL的版本,如果用户需要添加SSL支持,可以手动安装OpenSSL库,并使用Apache的mod_ssl模块进行配置。这通常涉及到下载...

    Tomcat+Apache集成配置大全[收集].pdf

    这种架构还允许通过Apache实现负载均衡和反向代理,提升整个Web服务系统的可扩展性和可靠性。 **总结** Tomcat与Apache的集成是软件开发中常见的优化策略,通过合理配置,可以实现高效、稳定的Web服务环境。理解...

Global site tag (gtag.js) - Google Analytics