IIS反向代理无法在Azure Web App

时间:2017-06-23 21:57:31

标签: azure iis azure-web-sites

我想使用反向代理将我的一个端点指向其他地方托管的资源。我的主服务器(托管其他所有内容的服务器)位于Azure Web App中,并且工作正常。

我一直在使用这个看似防故障的文章以及它底部提到的其他链接:https://blogs.msdn.microsoft.com/zhiliang_xus_blog/2016/01/19/build-a-google-reverse-proxy-site-on-azure-web-app-in-less-than-3-minutes/

作为基准,我使用了一个没有附加代码的Web应用程序,并确认反向代理有效。这是通过手动创建/编辑web.config文件和applicationHost.xdt文件然后重新启动服务器来完成的。

我尝试了3种不同的方法(全部用于干净的新网络应用程序),所有这些方法对我来说都失败了:

  1. 推送我的代码,确认其有效,然后手动执行反向代理步骤
  2. 手动执行步骤,确认反向代理有效,然后按我的代码
  3. 将反向代理文件放入我的代码库并同时推送所有内容
  4. 这3种方法都不起作用。这是Azure中的错误吗?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您发布的链接/方式使用URL Rewrite来实现反向代理。我测试了它,它与我的空Web应用程序工作正常。在向Azure Web App发布Web应用程序(例如,ASP.NET MVC Web应用程序)后,URL Rewrite停止工作。原因是您的Web应用程序的所有请求都由ASP.NET路由模块路由。

要为某些URL启用URL重写,我们需要为这些URL禁用ASP.NET路由。例如,如果您想用" product / xxx"重写所有请求。格式化到另一个站点。您可以将以下代码添加到RouteConfig.cs文件中。

routes.Ignore("product/{action}");

答案 1 :(得分:1)

发布 XML转换(XDT),您重启了网站吗?

我建议你从 Ruslan 看看这个博客:
http://ruslany.net/2014/05/using-azure-web-site-as-a-reverse-proxy/

它讨论了使用网站扩展。它实现了反向代理,并为您进行XDT转换。

如果上面的设置正确,那么网址重写规则就有问题。我建议您启用失败的请求跟踪并进一步调试。

答案 2 :(得分:0)

此特定情况下的问题是我的web.config文件的位置。

它必须位于应用程序的根目录中,在我的情况下,不是 site\wwwroot。我的代码正在生成并复制到site\wwwroot\dist。将配置文件放在该目录中可以解决问题。

此外,还有一些日志可以启用,以便了解正在进行的操作:https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-enable-diagnostic-log