IIS 实现反向代理有两种方法,IIS6 通过第三方工具 ISAPI Rewrite 来实现反向代理,IIS7 以后的版本可以用微软自己的 URL Rewrite 和 Application Request Routing 来实现反向代理。
IIS6 实现反向代理步骤
1、先安装 ISAPI_Rewrite3_0082.msi,安装完成后,再安装一个 Apache 服务器,Apache 安装完成后,设置 HTTP 端口为 8080,HTTPS 端口 4433,而 IIS 的 HTTP 端口为 80,HTTPS 端口 443,IIS 和 Apache 的端口不能冲突。
2、IIS 新建一个站点,在网站根目录建立一个名为 .htaccess 的文件,内容如下,域名请修改为自己的域名:
- RewriteEngine On
- RewriteCompatibility2 On
- RepeatLimit 200
- RewriteBase
- RewriteCond %{HTTP:Host} ^www.williamlong.info$
- RewriteProxy (.*) http://www.williamlong.info:8080$1 [NC,P,H]
之后,IIS6+Win2003 配置反向代理到 Apache 就成功了,制定域名可以通过 80 端口的 IIS 访问,而实际网站则是在 Apache 的 8080 端口,对于用户来说是不可见的。
IIS7 实现反向代理步骤
IIS7 不用安装第三方的软件,本身反向代理软件微软就提供,我们使用微软自己的 URL Rewrite 和 Application Request Routing 即可实现反向代理。
1、先安装 URL Rewrite 和 Application Request Routing(ARR),只转发到 IIS 内网站,则不需要安装 ARR。安装完成后,再安装一个 Apache 服务器,Apache 安装完成后,设置 HTTP 端口为 8080,HTTPS 端口 4433,而 IIS 的 HTTP 端口为 80,HTTPS 端口 443,IIS 和 Apache 的端口不能冲突。
2、安装好以上两个插件,重启 IIS 管理器,然后点击当前主机,就会发现两个新增的图标了。点击 Application Request Routing 图标,选择 Server Proxy Settings,勾上 Enable proxy 并点击右侧的应用。
3、选择需要反向代理的站点,再选择“URL 重写”,点击添加规则,选择空白规则,“条件输入”填写“{HTTP_HOST}”模式为^www.williamlong.info$,入站规则的操作类型为“重写”,重写 URL 为“http://www.williamlong.info:8080{R:1}”,填好了保存下,即可完成 IIS7 的反向代理配置。
以上内容整理自@月光博客