`
xfcy2003
  • 浏览: 19752 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

apache+tomcat配置以及url转发总结

    博客分类:
  • java
阅读更多
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。这与题目无关,就此打住。

还有一篇javaeye的文章,里面还涉及到了虚拟主机的搭建:

http://www.iteye.com/topic/168982

去官网下载出了点问题,后来去太平洋下的,注意是下win32的,没人用linux开发吧?~

安装的时候又出了点问题,"requested failed",经过一阵google,使用 cmd->netstat -ano 发现进程PID***占用了80端口,打开任务管理器一看,丫的,QQMusic!,,,关掉后就OK乐。

然后按照这位csdn的朋友去测试,发现确实存在路径的问题,比如某些图片采用了绝对路径的。。。还有由于用到了url-rewrite,页面中相当一部分链接是采用jstl的<c:url 打出来的,就是说是tomcat的绝对路径了。比如<C:url value="/index.htm"/>

本来的访问地址是:http://localhost:8080/index.htm.

但是现在时apche做前端,所以浏览器的地址栏是http://localhost/index.htm,答案很明显,访问不到了。。。

还有url-rewrite里的out-boundle就是在jstl使用<C:url 标签时才重写URL的。。。纳闷中,,,

寻找解决方案ing...

10分钟后.......

经过一番努力发现时我搞错了:

经过仔细观察,只要

ProxyPass /app1 http://<tomcat_server_address>:port/url1

ProxyPassReverse /app1 http://<tomcat_server_address>:port/url1

这里的app1和url1[就是tomcat下的工程目录一直就可以解决这个问题]

比如我的文件:

Java代码
  1. ProxyPass                   /bbs http: //localhost:9090/bbs   
  2.   
  3. ProxyPassReverse   /bbs http: //localhost:9090/bbs   
  4.   
  5. ProxyPass                   /wibo http: //localhost:9090/wibo   
  6.   
  7. ProxyPassReverse   /wibo http: //localhost:9090/wibo   
  8.   
  9. ProxyPass                   / http: //localhost:9090/   
  10.   
  11. ProxyPassReverse   / http: //localhost:9090/   
ProxyPass                  /bbs http://localhost:9090/bbs

ProxyPassReverse  /bbs http://localhost:9090/bbs

ProxyPass                  /wibo http://localhost:9090/wibo

ProxyPassReverse  /wibo http://localhost:9090/wibo

ProxyPass                  / http://localhost:9090/

ProxyPassReverse  / http://localhost:9090/

最后两个的意思是将root转发到tomcat得root,其他context只要app的名字和tomcat下的工程名一直即可!!!

apache查错方法:

写道
启动的时候就一直是the requested operation has failed错误.

于是开始检查:
运行-> cmd 进入到apache的bin目录。
输入httpd.exe -w -n "Apache" -k start
会提示配置文件的具体那行出错,找起来就方便多了。注:命令里的"Apache"是系统服务里apache服务的名称,及时换成你的。

主义apcahe2.2的服务名称是Apache2.2,使用netstat -ano方便查找到占用80端口的PID,再去任务管理器查看【需要选项设置列-PID】对应PID的进程,再结束掉重启即可。

分享到:
评论

相关推荐

    apache+tomcat+jk 均衡负载和集群

    总结来说,Apache+Tomcat+JK组合提供了一种强大且灵活的解决方案,用于构建高可用、可扩展的Web服务环境,满足大规模网站或应用的需求。通过正确配置和管理,这种架构可以确保服务的稳定性和高效性。

    apache+tomcat7+jk负载均衡

    在这个场景中,Apache扮演着负载均衡器的角色,接收来自客户端的请求,并根据预设策略将请求转发到适当的Tomcat实例。 2. Tomcat7:Tomcat是Apache软件基金会的Java Servlet和JavaServer Pages(JSP)容器,专注于...

    apache+tomcat整合.pdf

    通过这些配置项,Apache能够识别出需要转发到Tomcat的请求,并通过JK连接器将这些请求发送到Tomcat服务器处理。 整合完成后,Apache服务器将能够处理静态内容的请求,同时也能够将JSP和Servlet的请求转发到Tomcat...

    apache+tomcat配置说明

    ### Apache+Tomcat配置说明 #### 一、安装与配置Apache与Tomcat 在搭建Apache与Tomcat联合工作环境之前,首先需要确保Apache服务器已经安装完成,并且版本为2.2。此外,还需要安装FTP服务器以及获取mod_jk.so模块...

    apache + tomcat + mod_jk集群

    Apache、Tomcat以及mod_jk模块组成的集群架构是一种常见的高性能Web服务器和应用服务器组合,用于处理高并发和负载均衡的场景。在这个配置中,Apache作为前端服务器,通过mod_jk模块与后端的Tomcat应用服务器进行...

    apache+tomcat+phpmyadmin打包

    同时,确保Tomcat配置正确,能够处理来自Apache的请求。对于PHPMyAdmin,需要将其解压并放在Apache服务器的文档根目录下,然后通过浏览器访问指定URL来启动。 总结起来,"apache+tomcat+phpmyadmin打包"是构建一个...

    linux+apache+tomcat+java配置文件.rar

    这涉及到在Apache配置文件中添加负载均衡和故障转移规则,以及在Tomcat的`server.xml`中配置JK连接器。 6. 安全与优化:确保所有服务都升级到最新版本,避免已知的安全漏洞。使用SSL/TLS证书为网站提供加密连接。...

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

    - **编辑 ajp.conf 或者 virtual host 配置**:在 Apache 配置中添加对 mod_jk 的引用,如 `JkMount /app worker1`,这意味着所有 `/app` 开头的请求都将被转发到名为 `worker1` 的 Tomcat 实例。 - **重启 Apache...

    Apache2.4+tomcat8.0+Jk

    5. 更新Apache的VirtualHost配置,添加JKMount指令来指定哪些URL路径应由Tomcat处理。 在Tomcat侧,需要配置server.xml文件中的Connector元素,启用AJP支持。此外,为了监控和管理JK模块,可以安装和配置mod_status...

    apache+tomcat+jk

    然后,需要配置一个JkMount指令,指定哪些URL路径应该被转发到Tomcat处理。 6. **配置Tomcat的server.xml**:在Tomcat的conf/server.xml文件中,添加一个Engine、Host和Context元素,定义mod_jk将连接的Tomcat实例...

    apache+tomcat负载

    4. 如果请求是动态内容(如以".do"结尾的URL),Apache会通过JK模块将请求转发到一个可用的Tomcat实例。 5. Tomcat接收到请求后,处理动态内容并生成响应。 6. Tomcat将响应返回给Apache,Apache再将响应返回给...

    Apache+tomcat开发所需安装包

    4. 配置`mod_jk.conf`:定义如何将特定URL映射到Tomcat,以便正确地转发请求。 5. 重启Apache:完成配置后,重启Apache使改动生效。 接下来,需要在Tomcat服务器上进行相应的配置,如设置`server.xml`中的`Engine`...

    tomcat集群-Apache2.2.4+And+mod_jk.so+tomcat配置文件

    总结来说,"tomcat集群-Apache2.2.4+And+mod_jk.so+tomcat配置文件"的配置涉及到多个步骤,包括Apache和Tomcat的安装、mod_jk模块的集成、配置文件的修改以及负载均衡策略的设定。这个过程对于构建高可用、高性能的...

    tomcat+apache+jk集群和负载均衡

    以下是对标题“tomcat+apache+jk集群和负载均衡”以及描述“tomcat+apache+jk集群和负载均衡”的深入解析,涵盖其原理、配置步骤以及关键参数调整。 ### 1. 理论基础 #### Tomcat Tomcat是Apache软件基金会下的一...

    Apache2.4+Tomcat7服务器集群配置及软件.rar

    在集群配置中,Apache通常作为反向代理服务器,负责接收来自客户端的请求,并根据负载均衡策略将请求转发到后台的Tomcat实例。Apache2.4.43引入了多项优化,提高了服务器的稳定性和响应速度。 Tomcat 7是一款开源的...

    apache+tomcat整合开发

    4. **设置代理规则**:接着,在`httpd.conf`中,添加或修改VirtualHost配置,定义一个代理规则,将特定的URL或路径转发给Tomcat处理。例如: ``` *:80&gt; ServerName your_domain.com ProxyPass /app ...

Global site tag (gtag.js) - Google Analytics