将请求的网址重写重定向到其它网址。当80端口被占用无法同时使用两个Web服务的解决方案,使得IIS和Apache Tomcat 共存
环境
WindowServer 2008 IIS7
Apache 集成在WampServer
Tomcat
测试程序:微擎(PHP) 、 某管理系统(Java)
工具
Application Request Routing(ARR x64)(ARR 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 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