标签: azure-cdn

Azure,存储和部署静态内容的最佳方式(例如images/css)?

我们即将将.NET Web应用程序部署到Azure Web角色.我只是想知道其他人如何处理他们的静态内容,特别是图像和CSS?目前我们的应用程序包大约是25mb,但其中18mb是纯粹来自图像,导航按钮,图标和模板组件等很少得到更新的东西.将其从部署包中分区并将其移动到blob存储是否明智?

我对这种方法有些怀疑,我想知道它是有效的......

  1. 我们80%的网站都在HTTPS环境中运行.访问blob商店中的图像会引入跨脚本问题吗?

  2. 如果有人试图恶意锤击我们的图像(大多数低于20kb),那么漏金钱的漏洞呢?

  3. 我很难看到如何使用目录命名约定将文件上传到blob容器(来自VS2010 + Azure SDK),所以我不需要重写1000个路径引用?我很欣赏目录是blob容器中的抽象概念,但是我可以使用正斜杠编写文件以在代码中模仿它.显然,在我上传Visual Studio之前,Windows不允许我这样做.

任何想法或替代策略都会受到欢迎.目标实际上是缩小我们的部署包以加快部署时间.此外,我非常喜欢将图像服务卸载到专用节点以提高Web服务器性能的想法,也许我的图像集很小,几乎不值得打扰?

5月16日更新----------------------------------------------- -------------------------

这是我最后做的事情:

1.将所有图像+ css传输到blob存储容器.我维护了images和css文件夹中任何子目录的结构.

2.在我们的web.config文件中应用URL重写规则,如下所示.

  <rewrite>
    <rules>
      <rule name="imagestoazure">
      <match url="images/(.*)" />
      <action type="Redirect" url="https://xxxxx.vo.msecnd.net/images/{R:1}" />
    </rule>
  </rules>
  </rewrite>
Run Code Online (Sandbox Code Playgroud)

3.从应用程序中排除图像+ css文件夹并进行部署.

我的部署现在要小得多,而且图像正在运行CDN,从而节省了带宽,提高了下载速度并释放了网络服务器的一些负载.

更新:2015年9月

最近审查时,我遇到了Microsoft的以下指南.它详细介绍了如何使用查询字符串自动部署资产和缓存区域.

从Web应用程序中的Azure CDN提供内容

image azure static-content azure-storage-blobs azure-cdn

26
推荐指数
1
解决办法
2万
查看次数

为什么不在CORS未命中设置'Vary:Origin'响应?

在发出CORS请求时,如果请求的Origin位于允许的源列表中,则响应包含Access-Control-Allow-Origin标头和Vary: Origin标头.

Vary:Origin告诉CDNs等,响应是根据请求者的Origin头值协商的.

问题是(我已经测试了领先的CDN提供商),如果请求者在他们的请求中没有提供Origin头,或者Origin值不是允许的那个,则响应不包括变化:起源于回应.

如果CDN预先形成CORS总是在响应头中响应Vary:Origin吗? 如果不是,CDN会认为它可以对任何Origin值提供相同的响应.然后,通过使用随机原始值进行许多请求,可以填充CDN缓存.

cdn cors amazon-cloudfront azure-cdn

20
推荐指数
1
解决办法
1万
查看次数

Azure CDN与Azure Blob存储起源拉动时间过长

我正在使用azure blob存储将图像存储在公共容器中并将它们嵌入公共网站.一切正常,blob在xxxxx.blob.core.windows.net我上传它们的瞬间公开可用.我想将Azure CDN用于其边缘缓存基础架构并在其中设置一个xxxxx.vo.msecnd.net.

但是现在,当我将我的图像指向CDN时,它会返回404大约15分钟左右,然后它开始服务.在他们的文档中提到我们不应该将CDN用于高违规或频繁更改的blob,但是对于公共站点具有图像上载功能的简单CMS保证CDN不是吗?

azure azure-storage azure-cdn

15
推荐指数
2
解决办法
8919
查看次数

在 Azure Blob 存储上使用静态网站选项托管 SPA(干净的 URL 和深层链接)

我已经$web按照 Microsoft 文档中的建议,使用容器成功地在 Azure Blob 存储上建立了一个静态网站。另外,我已经定义index.html两种的“索引文件名称”和“错误文件名”。这是因为我希望我的 JavaScript 应用程序处理404响应。

但是,当查看 Chrome 中的网络选项卡时,我可以看到404为我请求的 URL 抛出了a ,尽管该页面实际上可以正常工作。

我的理论如下:

  • Azure 检查“文件”是否存在
  • 如果文件存在,则返回它
  • 如果文件不存在,它会抛出 a404并将 URL 重写为“错误文档名称”,即index.html在我的情况下(因此我的页面仍然有效)

我的问题是我的网址是干净的网址,例如:

/activities/some-slug 永远不会作为文件存在,这只是告诉我的 JavaScript 应用程序在哪里路由请求,即加载什么视图。

需要明确的是,该页面确实有效,因为它仍在将404错误路由到index.html.

我怎样才能告诉 Azure blob 只将所有内容路由到index.html并让我的应用程序在404必要时抛出?

我们确实已经设置了 Premium Verizon CDN,因为我最初不知道 Azure Blob 上的静态网站选项。如果 CDN 是最佳途径,请您提供有关如何配置 CDN 以提供我想要的内容的说明吗?

我尝试过/研究过的

我已经阅读了很多文章(特别是这篇文章中的评论),我相信可能有各种解决方案,即 Azure Functions、代理、CDN 等。也就是说,没有一个提供关于如何使用这些特定服务的明确说明。

我通常在 AWS 上工作,因此并不熟悉所有 Azure …

azure static-site azure-storage-blobs single-page-application azure-cdn

15
推荐指数
2
解决办法
3345
查看次数

Azure CDN Microsoft 标准规则引擎重写 URL 用于单页应用程序

我们尝试在 Microsoft 标准定价上配置 Azure CDN,以允许我们重写 Url 以将所有应用程序路由路由到 ./index.html。如何设置规则引擎来重写 url 但保留所有 js 文件原样?谷歌中的所有示例都展示了如何在高级定价上执行此操作,但我们喜欢在 Microsoft Standard 上执行此操作,这可能吗?

routes cdn azure single-page-application azure-cdn

14
推荐指数
2
解决办法
3887
查看次数

使用Azure CDN强制HTTPS

我在存储帐户前使用Azure CDN.我只想通过HTTPS提供所有服务,所以我在自定义域上设置了HTTPS并创建了一个URL重写:

HTTPS重写规则

但问题是我最终得到这样的网址: https://the-custom-domain/website/17/index.html

website/17/index.html是存储帐户中的根内容,但我不知道为什么它在文件名之前附加容器路径.还有静态文件的重写规则(https://blog.lifeishao.com/2017/05/24/serving-your-static-sites-with-azure-blob-and-cdn).

知道URL重写有什么问题吗?

azure azure-cdn

13
推荐指数
4
解决办法
6065
查看次数

Azure CDN + Asp.net MVC Cloud Service压缩捆绑包无法正常工作

我正在使用Azure CDN,它指向我的Azure云服务.我已经为我的JS和CSS文件启用了捆绑,而在BundleConfig中我已经设置了bundles.UseCdn = true.

一切都运行正常,除了通过CDN返回的JS和CSS包没有压缩.如果我没有使用CDN,则压缩包返回(我可以看到Content-Encoding是gzip).

我已经在我的CDN上启用了压缩,如下图所示:

在此输入图像描述

在我的ASP.net MVC web.config压缩也启用,它看起来像这样:

 <urlCompression doStaticCompression="true" doDynamicCompression="true" />
  <httpCompression>
    <dynamicTypes>
    <clear/>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/x-javascript" enabled="true" />
      <add mimeType="text/javascript" enabled="true" />
      <add mimeType="text/css" enabled="true" />
      <add mimeType="application/json" enabled="true" />

      <!-- HERE -->
      <add mimeType="image/svg+xml" enabled="true" />
      <add mimeType="image/png" enabled="true" />
      <add mimeType="image/jpg" enabled="true" />
      <add mimeType="image/jpeg" enabled="true" />
      <add mimeType="application/font-woff2" enabled="true" />
      <add mimeType="application/x-font-ttf" enabled="true" />
      <add mimeType="application/octet-stream" enabled="true" />
      <!-- HERE -->

      <add mimeType="*/*" enabled="false" /> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc azure azure-cdn

12
推荐指数
1
解决办法
317
查看次数

Azure CDN - 启用HTTP压缩 - 托管Web角色

有没有人使用托管的Web角色成功配置Azure CDN进行HTTP压缩?我们在Azure边缘服务器上压缩HTTP内容时遇到问题.CDN仅缓存内容的未压缩版本.

如果我们打我们的资源链接(WebResource.axd的从非Azure的方式通过的gzip压缩它)(使用xxxx.cloudapp.net/cdn/webresource.axd)如预期.但是,只要我们将资源链接指向Azure CDN(xxxx.vo.msecnd.net),尽管浏览器告知Azure CDN它接受gzip,但内容仍然是未压缩的.

向Azure论坛发布了同样的问题,但是到目前为止还没有人回复.

在解决问题时,似乎Azure CDN正在剥离Accept-Encoding HTTP标头.只是好奇,如果其他人有同样的问题.

Azure CDN最佳实践声明......

Windows Azure CDN如何使用压缩内容?

Windows Azure CDN不会修改(或添加)对象的压缩.Windows Azure CDN遵循基于"Accept-Encoding"标头的原始提供的压缩.从1.4开始,Azure存储不支持压缩.如果使用托管服务对象传递,则可以将IIS配置为返回压缩对象.

我们所看到的是CDN不尊重原点Accept-Encoding,它被剥夺了.

cdn azure azure-web-roles azure-cdn

11
推荐指数
1
解决办法
4935
查看次数

无法找到在新Azure门户中创建CDN的选项

我正在尝试创建Azure CDN,但无法在新的Azure门户中找到要执行的选项.

根据其他消息来源,在New - > App Services菜单下应该有一个CDN选项,如下所示:

在此输入图像描述

但是当我登录门户时,缺少此CDN选项.这就是我所看到的:

在此输入图像描述

这与我的订阅有关吗?我正在使用"3个月的免费试用期".

更新以包括左窗格选项的屏幕截图.没有CDN!

在此输入图像描述

azure azure-cdn

11
推荐指数
1
解决办法
1486
查看次数

无法使用Azure中的CDN访问BLOB

我在azure中有一个存储帐户,它包含容器作为"images"我可以使用以下路径访问我的blob https://mystorageaccount.blob.core.windows.net/images/image1.jpg

现在我为https://mystorageaccount.blob.core.windows.net创建了CDN

并获得了一些CDN的URL

http://abcd55555.vo.msecnd.net/

但是当我尝试使用CDN访问我的BLOB时如下

http://abcd55555.vo.msecnd.net/images/image1.jpg

我得到404 - 未找到错误.

我启用了EndPoint,启用了HTTP协议,启用了QUERY STRING STATUS.

出了什么问题?

cdn azure azure-cdn

10
推荐指数
2
解决办法
5360
查看次数