mod_proxy中的ProxyPassReverse

仔细看手册发觉自己从前对ProxyPassReverse指令的理解有问题,其实ProxyPassReverse对代理系统本身的工作没有任何影响,它的作用是用来重写后台被代理服务器反馈中的相应url,说穿了就是mod_rewrite的一个小功能。如果后台服务器会redirects的地址有多个的话,那么这个语句也要有多句,才能让外部看起来是完全在同一台服务器上被服务。这里的特别是指后台被代理服务器有多个IP的情况。

这次的发现是从ZEUS那里得到了启发,因为它的gateway系统有特别指定是否重写redirects的部分。真是应了那句温故而知新的老话。

博客日志: 

Submitted by 游客 (not verified) on 2006, July 5 - 08:53

ProxyPassReverse主要是为了防止出现由于后台Apache重定向导致连接绕过反向代理服务器的现象。
譬如:http://www.newsmth.net中Apache设置
ProxyPass \mine http://www.example.net/
那么客户端请求http://www.newsmth.net/mine/apache时会指向http://www.example.net/apache,但是如果在www.example.net对/apache设置了重定向,被定向到/newapache,那么返回给客户端的URL将会是http://www.example.net/newapache,这样反向代理服务器就被绕过去了,设置ProxyPassReverse后,反向代理服务器会对返回的www.example.net/newapache重写为http://www.newsmth.net/mine/newapache。

Copyright © 2004-2012 allblue All Rights Reserved