panjianm 发表于 2017-12-27 15:28:05

John_ABC

  测试环境:Windows10、IIS/10.0
  1.安装ARR、URL Rewrite(URL重写工具2.0)
  注意英文和中文环境的对应:
  Application Request Routing 对应中文 应用程序请求路由
  URL Rewrite Module 对应中文 URL重写
  下载安装ARR(也可以在IIS管理器中,Web平台安装程序->产品->搜索框中搜索"arr"->应用程序请求路由3.0 Beta->添加->安装): http://www.iis.net/downloads/microsoft/application-request-routing
  下载安装URL Rewrite Module(也可以在IIS管理器中,Web平台安装程序->产品->搜索框中搜索"url"->url重写工具2.0->添加->安装): http://www.microsoft.com/en-us/download/details.aspx?id=7435
  以上安装完后重新打开 IIS 管理器,可以看到如下
https://images2015.cnblogs.com/blog/544496/201612/544496-20161214113851620-1207661032.jpg
  2.启用ARR:双击ARR(Application Request Routing)->点击右侧Server Proxy Settings...->选中Enabel proxy->点击右侧“应用”
https://images2015.cnblogs.com/blog/544496/201612/544496-20161214114444526-352881262.jpg
  3.启用URL重写,可以通过web.config配置,也可以通过界面设置(web.config最终也可以使用界面来查看和操作),比如web.config样例,
  此时 www.che.com/che 或者 www.che.com/che/xxxx 都被代理到 www.proxy.com 或者 www.proxy.com/xxx,如果不想过滤掉"che",只需要把match url 改成 "^(che(/?|.*))$"
  

<?xml version="1.0" encoding="UTF-8"?>  
<configuration>
  <system.webServer>
  <rewrite>
  <rules>
  <rule name="cheProxy" stopProcessing="true">
  <match url="^che(/?|.*)$" />
  <conditions>
  <add input="{HTTP_HOST}" pattern="www\.che\.com" />
  </conditions>
  <action type="Rewrite" url="http://www.proxy.com{R:1}" />
  <serverVariables>
  <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
  </serverVariables>
  </rule>
  </rules>
  </rewrite>
  </system.webServer>
  
</configuration>
  

  由于使用了变量 HTTP_X_FORWARDED_HOST,所以需要在 url重写->查看服务器变量->添加->添加HTTP_X_FORWARDED_HOST
页: [1]
查看完整版本: John_ABC