apache+tomcat配置以及url转发总结【独立都可以,兼容不行】

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下的工程目录一直就可以解决这个问题]

 

比如我的文件:

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新建站点,设置端口转发和访问密码 阅读详情

相关推荐

Apache httpd-2.4安装并配置转发

Apache安装相关

M_Love_U的博客 3584

Apache 配置Https 转发Tomcattomcat中的项目也可以使用https

安全认证 Apache 配置Https 转发Tomcattomcat中的项目也可以使用https

qq_39951524的博客 2573

写写apache转发配置

mod_proxy_ajp:支持代理AJP(Apache JServ Protocol)请求的模块,通常用于将请求转发Tomcat服务器。mod_proxy_balancer:支持负载均衡的模块,可以将请求转发到多个后端服务器上,以提高系统的可用性和稳定性。mod_rewrite:支持URL重写和重定向的模块,可以将请求动态地转发到不同的服务器上。mod_proxy:基本的代理模块,支持HTTP、HTTPS、FTP等协议。mod_proxy_http:支持代理HTTP请求的模块。apache转发模块。

qq_44370158的博客 1150

【踩坑日常】Linux配置Apache转发https请求到tomcat

配置apachetomcat的ssl证书apache新增80端口、443端口的转发监听,443端口需要增加ssl代理配置

Athain的博客 1538

apache转发tomcat路径_Apache Tomcat配置URL转发

Apache Tomcat 配置URL 转发一、准备相关软件a) Apache HTTP Server 2.2 (http://httpd.apache.org/download.cgi ) b) Tomcat 6.0 (http://tomcat.apache.org/ )c) Apache Tomcat Connector (http://tomcat.apache.org/co...

weixin_29886329的博客 717

通过Apache转发Tomcat共用80端口

通过Apache转发Tomcat共用80端口

huhuhuemail的博客 4042

apache转发tomcat路径_Apache + Tomcat 配置URL转发

Apache + Tomcat配置URL转发一、准备相关软件c)Apache Tomcat Connector (对应Apache HTTP Server 2.2的版本二、Apache配置a)配置Apache + Tomcati.首先将下载的mod_jk-1.2.31-httpd-2.2.3.so复制到Apache HTTP Server安装目录下的modules文件夹下;在Apache HT...

weixin_33835122的博客 308

ApacheTomcat有什么关系和区别

经常在用apachetomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下:   一  apache支持静态页,tomcat支持动态的,比如servlet等,   一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由t

用心去记录 9万+

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

http://blog.csdn.net/jacklondon/archive/2006/09/08/1194992.aspx 写道 Apache HTTP server 和 Tomcat server 整合,一般是希望对于用户只公布 Apache HTTP server 的网址,而 Tomcat 的网址则不公布,扮演一个幕后英雄的角色。访问 Tomcat 的 HTTP 请求,通过 Ap...

xfcy2003@gmail.om 377

apache转发tomcat路径_Apache + tomcat 环境下配置URL转发

一、准备相关软件a)ApacheHTTPServer2.2(http://httpd.apache.org/download.cgi)b)Tomcat6.0(http://tomcat.apache.org/)c)ApacheTomcatConnector(http://tomcat.apache.org/connectors-doc/)mod_jk-1.2.31...

weixin_35659653的博客 266

Apache在windows简单安装部署并使用ProxyPass转发URLTomcat

只是简单部署,不涉及理论,参考并盗用博客 https://blog.csdn.net/u011277123/article/details/77165137 https://blog.csdn.net/mikasoi/article/details/80976425     1.官网下载,当前使用2.4版本   2.修改文件Apache24/conf/httpd.conf     ...

cjw506730104的博客 1454

windows apache+tomcat整合及apache转发URL

windows apache+tomcat整合及apache转发URL

ivan_ting的专栏 489

apache转发tomcat路径_Apache转发Tomcat

#vi /etc/httpd/conf/httpd.conf添加下面配置NameVirtualHost *:80ProxyPreserveHost OnServerName www.域名.comProxyPass / http://www.域名.com:8080/system/ErrorLog logs/error_logCustomLog logs/access_log common作者:沈小然...

weixin_42361764的博客 427

apache转发tomcat路径_Apache + Tomcat环境如何配置URL转发

一、准备相关软件a) Apache HTTP Server 2.2(http://httpd.apache.org/download.cgi )b) Tomcat 6.0 (http://tomcat.apache.org/ )c) Apache Tomcat Connector(http://tomcat.apache.org/connectors-doc/ )mod_jk-1.2.31-htt...

weixin_30249997的博客 128

Apache在CentOS7简单安装部署并使用ProxyPass转发URLTomcat

只是简单部署,不涉及理论,参考并盗用博客: https://blog.csdn.net/u011277123/article/details/77847360/ https://blog.csdn.net/yishuifengxiao/article/details/80557747   1、yum命令安装apache      yum install httpd -y   2、将a...

cjw506730104的博客 1553
上一篇: mysql通过data文件夹恢复数据
下一篇: 宽带用户搭建本地服务器,终于成功了!
Ryankay
博客等级 码龄18年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值