用ISAPI_Rewrite实现反向代理(ReverseProxy)

ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。它非常类似于Apache's mod_Rewrite,但它是专为IIS设计的。
ISAPI_Rewrite有两个版本:ISAPI_Rewrite Full与ISAPI_Rewrite Lite。
ISAPI_Rewrite Lite是免费版本,但不支持反向代理功能。
ISAPI_Rewrite Full只能下载到30天的试用版本。
这篇文章介绍的是基于ISAPI_Rewrite Full实现反向代理。配置实际上很简单。写出来的目的主要是希望给初次使用ISAPI_Rewrite的朋友提供参考。
下面就是配置步骤:
1、下载ISAPI_Rewrite Full: http://www.helicontech.com/download/#isapi_rewrite
2、安装ISAPI_Rewrite Full
3、修改配置文件httpd.ini,默认位置在C:\Program Files\Helicon\ISAPI_Rewrite。假如我们现在有两台Web服务器,一台是www.cnblogs.com, 另一台是 www2.cnblogs.com,  www2作为一台反向代理服务器,客户端浏览器访问www2服务器,www2服务器向www服务器请求内容并返回给客户端。具体在httpd.ini的配置如下:
在httpd.ini中增加下面的内容:
RewriteCond Host: www2\.cnblogs\.com
RewriteProxy (.*) http\://www.cnblogs.com$1 [I,F,U]

参考配置文档:http://www.isapirewrite.com/docs/

posted on 2004-12-25 21:02 dudu 阅读(5627) 评论(23)  编辑 收藏 网摘

评论

#1楼  2005-05-07 10:10 蓝色      

能否用这个东东做一个规则来实现二级域名呢?

就是访问 dudu.cnblogs.com

就用这个插件映射成 www.cnblogs.com/dudu/
  回复  引用  查看    

#2楼  2005-10-24 16:52 pcvc      

可以:

RewriteCond Host: (?!\.|www|ww)(.*).yourname.com
RewriteRule (.*) http\://www.yourname.com/$1$2 [I,R]
  回复  引用  查看    

#3楼  2005-10-24 17:00 pcvc      

假如我们现在有两台Web服务器,一台是www.cnblogs.com, 另一台是 www2.cnblogs.com, www2作为一台反向代理服务器,客户端浏览器访问www2服务器,www2服务器向www服务器请求内容并返回给客户端。

反向代理(ReverseProxy),实际用途在哪?
  回复  引用  查看    

#4楼  2005-11-06 00:52 宽带海量资源下载网 [未注册用户]

这个东西好,不知道有没有full正式版本可以下载的。   回复  引用    

#5楼  2005-11-06 01:01 中文网摘大全 [未注册用户]

要是有破解版的就好了。有人找到过吗?   回复  引用    

#6楼  2005-11-06 01:09 雅狗top1000流行榜 [未注册用户]

我也想要。   回复  引用    

#7楼  2005-12-29 14:02 kimjooy1 [未注册用户]

dudu ISAPI_Rewrite是要安装在www服务器 还是www2服务器上啊?   回复  引用    

#8楼 [楼主] 2005-12-29 17:59 dudu      

www2   回复  引用  查看    

#9楼  2006-01-22 21:19 老顽童 [未注册用户]

用这个东东转二级域名的时候,他怎么有一个跳转 比方是dudu.cnblogs.com 在IE里显示是www.cnblogs.com/dudu/ ,有没有办法解决这个问题 在IE直接显示dudu.cnblogs.com ?   回复  引用    

#10楼  2006-03-13 05:15 Wuvist [未注册用户]

请教一下dudu……
我在维护的站点是 www.blogwind.com 网站有两台服务器,两台服务器虽然是在同一个机房,但两台服务器的IP根本不在一个网段(服务器 A 的IP是220打头,服务器B的IP是221打头)……两台服务器均有两块网卡,所以,我直接使用网线把两台服务器链接了起来,直接链接时使用的是192.168打头的内部IP,方便两台服务器之间传输资料……

因为两台服务器在不同网段,不同地方的用户访问不同服务器时速度相差很远(比方说,教育网的用户访问服务器A速度极差,但访问服务器B的速度却很好)。

www.blogwind.com 一直是运行在服务器 A上。所以我便想用反向代理来提高教育网访问blogwind的速度。

我把www2.blogwind.com这个二级域名解析到了服务器B的IP上,然后在服务器B上装ISAPI_Rewrite做反向代理:
RewriteCond Host: www2\.blogwind\.com
RewriteProxy (.*) http\://www.blogwind.com$1 [I,F,U]

但是,因为服务器B直接访问服务器A时速度其实也不算快,所以,我在服务器B上修改了c:\windows\system32\drivers\hosts 文件,强制把www.blogwind.com解析为192.168.0.1也就是服务器A跟服务器B之间A的内部IP。

现在,我的确是可以使用 www2.blogwind.com 浏览网站,但似乎cookie一关浏览器便失效……而且在有使用response.redirect的页面中也会出错……虽然可以显示redirect之后的网页内容,但浏览器的地址栏显示的还是redirect之前的网址……不知道dudu能否给偶指点一二?
  回复  引用    

#11楼 [楼主] 2006-03-13 09:50 dudu      

@Wuvist
抱歉!我也不知道如何解决这个问题。
  回复  引用  查看    

#12楼  2006-03-13 16:38 Wuvist [未注册用户]

呃……dudu……
应该使用
RewriteCond Host: www2\.blogwind\.com
RewriteProxy (.*) http\://www.blogwind.com$1 [I,U]
而不是
RewriteProxy (.*) http\://www.blogwind.com$1 [I,F,U]

cookie/redirect的问题便解决了……
  回复  引用    

#13楼 [楼主] 2006-03-13 16:59 dudu      

@Wuvist
谢谢你共享经验!
我当时只是试用了一下ISAPI_Rewrite,后来也就没有研究。
  回复  引用  查看    

#14楼  2006-03-13 18:12 Wuvist [未注册用户]

@中文网摘大全
ISAPI_Rewrite这样的好东西,应该买正版……我已经买了两套了……

@dudu
:)
  回复  引用    

#15楼  2006-05-10 22:48 爱好啊 [未注册用户]

正在使用,试着动态地址转静态,本地通过,哈哈   回复  引用    

#16楼  2006-09-13 16:56 有容乃大      

为什么我的总是不成功呢?   回复  引用  查看    

#17楼  2007-02-02 22:53 郁闷啊 [未注册用户]

我按照此方法做了 怎么老是 显示 404错误呢?   回复  引用    

#18楼  2007-02-07 05:58 郁闷啊 [未注册用户]

当点到新的网址 网址栏的网址没有跳转   回复  引用    

#19楼  2007-02-11 01:09 老幺 [未注册用户]

一套就500多人民币,还是很值得买的。   回复  引用    

#20楼  2007-05-01 03:42 KK [未注册用户]

一套rewrite就500多!还不如用APACHE PHP呢 免费防盗链 免费rewrite 免费反向代理。。。 整个WIN2003+各种ISAPI插件费用+各种软件费用 远远大于LAMP成本   回复  引用    

#21楼  2007-08-25 18:29 boy119      

用这个东东转二级域名的时候,他怎么有一个跳转 比方是dudu.cnblogs.com 在IE里显示是www.cnblogs.com/dudu/ ,有没有办法解决这个问题 在IE直接显示dudu.cnblogs.com ?   回复  引用  查看    

#22楼  2008-01-06 02:56 rrr [未注册用户]

--引用--------------------------------------------------
pcvc: 可以:

RewriteCond Host: (?!\.|www|ww)(.*).yourname.com
RewriteRule (.*) http\://www.yourname.com/$1$2 [I,R]
--------------------------------------------------------

不知道您的答复有没有测试过?我试过很多网上的都不成功;请好心大虾帮我花2分钟帮我看看可以吗,我的qq:17007325;谢谢
  回复  引用    

#23楼  2008-01-10 23:56 hzexe [未注册用户]

--引用--------------------------------------------------
用这个东东转二级域名的时候,他怎么有一个跳转 比方是dudu.cnblogs.com 在IE里显示是www.cnblogs.com/dudu/ ,有没有办法解决这个问题 在IE直接显示dudu.cnblogs.com ?
--------------------------------------------------------
http 403状态的跳转的表现..与response.redirect的不同
与response.staut类似..
IIS上的rewrite有开源的,如果只是rewrite,开源的就可以了..但看了这个文章后也没有看出来它反向代理的意义何在,更像仅仅是rewrite.不说它功能有没有squid那么强,也比不上apache,,apache还有反向代理和缓存的功能呢.
.net framework都支持到php上去,真想转到php上去了.
  回复  引用    


发表评论



姓名 [登录] [注册] 
主页
Email (仅博主可见) 
验证码 *  验证码看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论   新用户注册   返回页首      

导航: 网站首页 社区 新闻 博问 闪存 网摘 招聘 .NET频道 知识库 找找看 Google站内搜索



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务

相关文章:

相关链接:
 

导航

公告

人生的真正价值在于从何种程度与何种意义上摆脱自我!
明天继续更新评论功能
<2006年1月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

统计

与我联系

搜索

 

常用链接

留言簿

随笔分类

随笔档案

新闻分类

相册

HJ

朋友的博客

网站收藏

小组

友情链接

最新随笔

最新评论

阅读排行榜

评论排行榜

60天内阅读排行