IIS 反向代理到 Apache、Tomcat

时间:2023-03-08 17:55:48

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

环境

WindowServer 2008 IIS7

Apache 集成在WampServer

Tomcat

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

工具

Application Request Routing(ARR x64)(ARR x32

URL Rewrite(x64 x32

需求

服务器只允许开放 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)

教程

反向代理

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

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

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

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

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

IIS 反向代理到 Apache、Tomcat

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

IIS 反向代理到 Apache、Tomcat

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

IIS 反向代理到 Apache、Tomcat

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

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

IIS 反向代理到 Apache、Tomcat

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

IIS 反向代理到 Apache、Tomcat

7. 添加配置

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

IIS 反向代理到 Apache、Tomcat

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

IIS 反向代理到 Apache、Tomcat

总结

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