博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 Azure App Service 上启用 Application Request Routing
阅读量:4035 次
发布时间:2019-05-24

本文共 1751 字,大约阅读时间需要 5 分钟。

点击上方蓝字关注“汪宇杰博客”

导语

我们在IIS上经常使用 Application Request Routing (ARR) 模块做反向代理。Azure App Service 使用的也是 IIS,照理来说应该也能做反代,但默认情况下它是不行的,我们来看看如何给在 App Service 上启用 ARR。

实验

我有个网站 https://dropdatabase.run/,想要在 https://dropdatabase.run/996 下反代 https://996.icu。为此,我得在站点根目录创建以下 web.config 文件。

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <system.webServer>

    <rewrite>

      <rules>

        <rule name="996" stopProcessing="false">

          <match url="996(.*)" />

          <action type="Rewrite" url="https://996.icu/{R:1}" appendQueryString="true" logRewrittenUrl="false" />

        </rule>

<rule name="996js" stopProcessing="false">

          <match url="js/(.*)" />

          <action type="Rewrite" url="https://996.icu/js/{R:1}" appendQueryString="true" logRewrittenUrl="false" />

        </rule>

      </rules>

    </rewrite>

    <httpProtocol>

     <customHeaders>

        <add name="strict-transport-security" value="max-age=15552001; includeSubDomains; preload" />

     </customHeaders>

    </httpProtocol>

  </system.webServer>

</configuration>

在本机,一切工作正常。但部署到 Azure 以后,居然404了:

其实 web.config 文件是正确的,不工作是因为 App Service 尽管已经预装了 ARR 模块,但默认并没启用。

解决方法

这是一个微软文档里没有的方法,毕竟微软产品的奇怪姿势都得靠口口相传。

要在 App Service 上启用 ARR,你需要一份 xdt 文件,并上传到 site 目录。

在网站管理页面打开 Advanced Tools

进入 Debug console, CMD 或 PowerShell

进入 site 目录

点击 + New file

输入文件名 applicationHost.xdt 然后点击编辑图标

复制以下内容,并保存文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <system.webServer>

    <proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />

  </system.webServer>

</configuration>

回到 Azure App Service 网站管理页面,重启网站

稍等片刻,我们的反代就能正常运行了!

如果你没有看到这篇文章,可能需要996一周,然后放弃App Service 转而用 VM 部署反代了。哎,有钱人的云,就是需要关注我这样的公众号,才用得舒服。

汪宇杰博客

Azure | .NET | 微软 MVP

无广告,不卖课,做纯粹的技术公众号

喜欢本篇内容请点个在看

转载地址:http://lvkdi.baihongyu.com/

你可能感兴趣的文章
Spring事务的七种传播行为
查看>>
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
ArrayList集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
js弹窗插件
查看>>
自定义 select 下拉框 多选插件
查看>>
js判断数组内是否有重复值
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
arm linux 生成火焰图
查看>>
jtag dump内存数据
查看>>
linux和windows内存布局验证
查看>>
linux config
查看>>