iis实现方向代理

将请求的网址重写重定向到其它网址。当80端口被占用无法同时使用两个Web服务的解决方案,使得IIS和Apache Tomcat 共存

0|1环境

 

WindowServer 2008 IIS7

Apache 集成在WampServer

Tomcat

测试程序:微擎(PHP) 、 某管理系统(Java)

0|1工具


Application Request Routing(ARR x64)(ARR x32

URL Rewrite(x64 x32

0|1需求


服务器只允许开放 80 端口,要求 IIS反向代理到其它服务器,使得 可以通过二级域名访问Apache/Tomcat服务。

假设一个环境:服务器中开启了IIS ,一级域名(test.com)可以访问到IIS的默认站点,但是我在Apache上运行着PHP的程序,所以想要通过二级域名(a.test.com)来访问到Apache的服务(127.0.0.1:808),通过二级域名(b.test.com)访问Tomcat(127.0.0.1:8080)

0|1教程


反向代理

1. 在使用反向代理前,我们需要在IIS中安装 ARR 工具和 URL Rewrite 。

安装方法很简单,只需要打开上面两个工具的链接将它们下载下来并安装就可以了。

2. 不过还有另一个快捷的安装渠道,微软官方有一个叫做 Web平台安装程序 可以直接一键安装。

不过使用 Web平台安装程序 我遇到一个问题,界面一直在加载中无法进入安装程序界面。所以你如果无法加载的话,就用第一种方法

安装完成后打开IIS ,可以看到出现了两个功能( Application Routing Request 、URL 重写

3. 打开 Application Request Routing 选择 Server Proxy Settings

4. 勾选 Enable proxy 。点应用后退出

5. 指定一个站点,对它进行URL重写

如 需要对 a.test.com 进入 URL重写,就点 a.test.com 站点中的URL重写功能

6. 添加规则 - 入站规则 - 空白规则

7. 添加配置

  • 名称随意
  • 模式写 ^(.*)
  • 添加条件 - 条件输入 {HTTP_HOST} 模式输入 ^a.test.com$
  • 操作类型默认重写
  • 重写URL :http://127.0.0.1:808/{R:1} ,这个链接表示要跳转的地址,如果你需要跳转到Tomcat则可以将端口改成8080

8. 保存好后,就可以直接在浏览器访问 a.test.com 了

总结

    • 如果需要反向代理Tomcat,只需要将URL重写地址写成Tomcat的链接就可以了
    • 我用WampServer的微擎测试程序时,可以重写到Apache,但是提交登录的时候会出现登录不上,但是在服务器中直接访问 Apache登录又可以登录。原因是 PHP的代码验证问题 。这种办法就修改下源码文件吧,或者你就不要用IIS的URL重写了,直接在IIS中配置一个PHP的请求映射,在IIS中运行PHP
posted @ 2019-07-12 12:40  MR__Wang  阅读(4181)  评论(0编辑  收藏  举报