重写Azure存储中托管的静态网站的URL

时间:2019-01-08 09:47:23

标签: angular azure-storage reverse-proxy static-site azure-cdn

我已将Angular 7应用程序部署到Azure存储静态网站。

Angular应用程序调用部署到Azure App Service的.NET Core API。

是否可以配置URL重写(反向代理)以将Angular应用程序请求路由到.NET Core API,而无需启用CORS?类似于使用Angular代理配置进行本地开发吗?

我已阅读到可以在Azure CDN中使用URL重写规则,但是我不太确定该怎么做。 https://docs.microsoft.com/en-us/azure/cdn/cdn-rules-engine-reference-features#url-rewrite

据我了解,URL重写规则中只能指定相对路径。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

是的,您可以执行此操作,但是要启用它,您需要使用Azure Premium CDN,它实际上并不很昂贵,并且按使用量收费,因此,如果您的站点不是很忙,那就应该没事了。 / p>

您将需要进入CDN门户和规则引擎并创建Url重写。

它看起来像这样。

enter image description here

enter image description here

请注意,正则表达式[^?.]*(\?.*)?$基本上会匹配任何没有文件路径(没有文件扩展名)的路由。然后将其重定向到index.html

希望对您有帮助。

答案 1 :(得分:1)

您可以在站点部署的地方使用azure函数代理。我假设对于前端,您将拥有每个以/ api开头的网址。

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "root": {
            "matchCondition": {
                "route": "/api/{*route}",
                "methods": [
                    "GET",
                    "HEAD"
                ]
            },
            "backendUri": "https://my-dot-net-server/{*route}": {
                //If you want to override any headers
            }
        }
   }
}

上述代理会将您的请求重定向到dotnet网址并发送响应。