在访问 Web 应用程序之前忽略对 Azure 应用服务的请求
Posted
技术标签:
【中文标题】在访问 Web 应用程序之前忽略对 Azure 应用服务的请求【英文标题】:Ignore requests to Azure App Service before hitting the web application 【发布时间】:2020-04-13 04:55:21 【问题描述】:我有一个作为 Azure 应用服务运行的 ASP.NET MVC 应用程序。 mydomain.com/api/*
中包含一个已弃用的 API,我想关闭它,因为我现在拥有 api.mydomain.com/*
。一旦弃用的 API 被关闭,有些人可能仍在向它发出请求。我可以创建一个返回 404 或类似内容的简单控制器。但我想知道是否有人知道 Azure 中的解决方案,我可以在我的应用程序之前将/api/*
或类似的 URL 列入“黑名单”。我知道 Azure 上提供了不同的产品,我可以在我的网站之前包含处理程序,例如 API 管理。但我不希望改变太多,为什么直接在应用服务上的功能、重写规则或类似的东西在这里会很棒。当一个我知道不应该做任何事情的 URL 请求进来时,我根本不希望调用我自己的应用程序的性能开销。
【问题讨论】:
【参考方案1】:您可以使用 URL 重写来实现。您只需重定向到新路径,而不是阻止旧路径。将以下块添加到 web.config 文件中
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect rquests to default azure websites domain" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="HTTP_HOST" pattern="^mydomain\.com\/api/(.*)" />
</conditions>
<action type="Redirect" url="https://api.mydomain.com/R:0" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
来源:https://***.com/a/36631234/1384539
【讨论】:
我不想重定向到新的 API,因为接口不同。但我想我可以重定向到 404 响应或类似的东西? 是的,您可以中止请求或使用带有所需状态代码的自定义响应:docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/…以上是关于在访问 Web 应用程序之前忽略对 Azure 应用服务的请求的主要内容,如果未能解决你的问题,请参考以下文章
从 azure web 应用程序提供 logstash。如何?
在哪里可以找到基于 IP 的 SSL Azure Web 应用程序的静态 IP?