反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理可以启用高级 URL 策略和管理技术,从而使处于不同 web 服务器系统的 web 页面同时存在于同一个 URL 空间下,也可以优化带宽服务器与性能服务器的组合。
通过 IIS 安装反向代理,可以使得 IIS 和 Apache 等服务器运行在同一台机器上,IIS 和 Apache 都可以通过 80 端口访问,使得网站的兼容性更强。
IIS6 通过第三方工具 ISAPI Rewrite 来实现反向代理,具体方法如下:
先安装 ISAPI_Rewrite3_0082.msi,安装完成后,再安装一个 Apache 服务器,Apache 安装完成后,设置 HTTP 端口为 8080,HTTPS 端口 4433,而 IIS 的 HTTP 端口为 80,HTTPS 端口 443,IIS 和Apache 的端口不能冲突。
IIS 新建一个站点,在网站根目录建立一个名为 .htaccess 的文件,内容如下,域名请修改为自己的域名:
RewriteEngine On RewriteCompatibility2 On RepeatLimit 200 RewriteBase RewriteCond %{HTTP:Host} ^www.williamlong.info$ RewriteProxy (.*) https://www.williamlong.info:8080$1 [NC,P,H]
之后,IIS6 + Win2003 配置反向代理到 Apache 就成功了,指定域名可以通过 80 端口的 IIS 访问,而实际网站则是 Apache 的 8080 端口,但是用户看到的只有域名,没有端口,更加清晰明了。
相关阅读:IIS7 反向代理实现方法