不做浮躁的人
正在行走的人...
posts - 171,  comments - 51,  trackbacks - 0

Apache可以被配置为正向(forward)和反向(reverse)代理。

正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。

使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。

注意:在您没有对服务器采取安全措施之前,请不要用ProxyRequests启用代理。一个开放的代理服务器不仅对您的网络有威胁,对整个因特网来说也同样如此。

反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。

反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。

可以使用ProxyPass指令激活反向代理(在RewriteRule指令中使用[P]标记也可以)。配置反向代理并不需要打开ProxyRequests指令。

 

正向代理
ProxyRequests On
ProxyVia On

<Proxy *>

Order deny,allow
Deny from all
Allow from internal.example.com

</Proxy>

反向代理
ProxyRequests Off

<Proxy *>

Order deny,allow
Allow from all

</Proxy>

ProxyPass /app1 http://server:port/app2
ProxyPassReverse /app1 http://server:port/app2

 因此,我们可以使用反向带来实现apache和tomcat,webphere,weblogic等应用服务器的集成。但是由于apache 反向代理只做 HTTP 透明转发,因此应用中的连接都应该是相对路径,不应该使用绝对路径,更不能使用带应用上下文。

如果后端应用中使用<c:url等生成绝对路径的应用,最好是转发的办法就是让转发的上下文呢和目标的上下文一致。这样就可以避免路径的问题。

调试apache,最好用命令行执行httpd.exe -w -n “Apache” -k start,在控制台上会显示哪行配置有错,在monitor 中没有这个功能。

关于经常的提示端口被绑定或者被占用,一般可以通过netstat -ano查找到占用80端口的PID,再去任务管理器查看对应PID的进程,对进程进行操作和处理。


另外,要使用代理功能,别忘了将下面两个模块的装载注释去掉:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


后续做一些apache的cache和balancer的研究与使用。
posted on 2010-12-04 21:16 不做浮躁的人 阅读(1840) 评论(0)  编辑  收藏 所属分类: others

只有注册用户登录后才能发表评论。


网站导航:
 

<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(9)

随笔分类(31)

随笔档案(75)

文章分类(1)

文章档案(3)

搜索

  •  

最新评论

阅读排行榜

评论排行榜