标签: azure-cdn

Azure CDN - 使用ETag启用HTTP 304缓存 - 托管Web角色

我们正尝试在Azure CDN上通过ETag 启用HTTP压缩(gzip)和HTTP 304缓存.我们已经发现启用Azure CDN压缩的问题,但现在我们无法同时使用压缩和ETag缓存(304s).此问题已在此处发布到Azure论坛.

以下是压缩但不可缓存的HTTP(304)链接的示例:

https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.js

以下是可缓存(304)但不可压缩(gzip)链接的示例:

https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.png

有谁知道如何在Azure CDN上一起使用HTTP缓存(304s)HTTP压缩

http-compression azure http-caching azure-web-roles azure-cdn

7
推荐指数
1
解决办法
1942
查看次数

图像托管Azure

我正在创建一个网站,用户可以在我的网站上创建新页面时上传各种图像.Microsoft提供什么服务来托管许多用户上传的图像.Blob会满足吗?如果是这样,如果我要添加CDN,是否值得?据我所知,CDN将图像复制到各种服务器上.如果我的本地服务器有100万张图像,这是否意味着所有其他位置也会有100万张图像?这会非常昂贵吗?

azure azure-storage azure-cdn

7
推荐指数
1
解决办法
7870
查看次数

将Azure CDN与共享访问签名一起使用

我试图合并Azure来存储应用程序的大部分文件.我想将这些文件上传到私有容器和Azure中的私有blob,并将这些上载通过Azure CDN复制到所有其他节点(仍作为私有容器和blob).然后,我希望我的应用程序向存储的blob发出请求,并在一段时间内向blob提供共享访问签名链接.但是,我希望为用户提供最近的数据中心生成的链接.每次需要blob时我都会生成SAS,但是我需要能够使用整个CDN的SAS选项.这甚至可以用于Azure,还是只能将SAS用于一个数据中心?

编辑 我希望我们的CDN好像它是我们主数据中心的副本,所以我不希望CDN对象被删除,除非它们从主数据中心删除.如果我确实创建了一个SAS并将其丢弃在CDN URL的末尾,如果SAS上的过期日期已经过去,而不是缓存持续时间,那么用户是否能够返回并访问该文件?

继承我的榜样:

显然,用户可以在2015年4月1日之前访问此URL,但如果他们在2015年4月2日回来,他们仍然可以访问吗?

另外,假设我确实将blob的缓存控制头设置为与SAS URL同时到期,这也是在缓存持续时间之后.然后,我有一个用户在2015年4月8日回来查找相同的blob,我们会生成一个新的SAS并将其提供给用户,blob是否仍然在CDN上,或者缓存控制头是否会从CDN中删除它?

shared signature azure azure-storage-blobs azure-cdn

7
推荐指数
1
解决办法
1864
查看次数

Azure CDN 使用根域解决方案

我对我们的 CDN 感到担忧,因为我们计划应用自定义域。我了解无法将 CNAME 记录映射到根域(例如 contoso.com)的部分。我想寻求一种解决方法,让我们说是的,我们已经将它分配给了 www.contoso.com。但是现在人们不再使用 www 子域,只会在 URL 地址栏中输入 constoso.com ,因此它只会返回 404,因为它没有被映射,因此会失去潜在客户。您建议的解决方案或解决方法是什么?

azure azure-cdn

7
推荐指数
1
解决办法
2620
查看次数

用于云服务请求的Azure CDN将转发到<myapp> .cloudapp.net而不是我的自定义主机名绑定

正如上面标题中提到的,我有一个带有WebRole的云服务,它运行一个Web应用程序www.myappname.com.我已采取所有必要步骤,使用IIS上的url rewrite模块从我的应用程序中提供CDN内容.这工作正常,但:

  1. 来自CDN的请求将转发到.cloudapp.net而不是我的自定义主机名绑定.我在配置中找不到任何更改此位置的地方.当我创建新的CDN端点时,我设置ORIGIN DOMAIN的选项仅限于我的云服务端点
  2. 假设我的云服务CDN端点有自定义域名(例如static.appnamecdn.com).当我使用https发出请求时会发生什么?我没有看到任何地方注册"static.appnamecdn.com"的ssl证书.这不是必需的吗?

azure azure-cdn

6
推荐指数
1
解决办法
901
查看次数

如何授权Azure REST API请求?

我正在创建一个删除CDN缓存的程序.所以我做的文件说我仍然得到这个:

{"error":{"code":"AuthenticationFailedInvalidHeader","message":"身份验证失败.'授权'标头以无效格式提供." }}

所以它基本上说认证令牌本身是格式错误的(没有错误或过期).即使我做了文档建议.

我的请求 - 响应流程看起来像这样(我混淆了真实数据):

REQUEST

 POST /subscriptions/29bdq1a7-348b-48fe-b9e6-b90c432892ff/resourceGroups/cdn-4/providers/Microsoft.Cdn/Profiles/CDN-3-Premium/endpoints/custom-endpoint.azureedge.net/purge?api-version=2015-06-01 HTTP/1.1
Content-Length: 90
User-Agent: GuzzleHttp/6.1.1 curl/7.35.0 PHP/7.0.2-2+deb.sury.org~trusty+1
Host: management.azure.com
Authorization: SharedAccessSignature uid=56c6d48a66904d02ce030003&ex=2017-02-19T11:41:00.0000000Z&sn=9wBsmFuP1ps01rt8nVlvsiAIdJMOqNsmGaiXUlfT35RxOvWAjHHcSIQdJA8v9wGvX4bJgX5fu1QyqVG6y9iQ6Q==
Content-Type: application/json

{
    "ContentPaths": [
        "/uploads/static/ads_en.json",
        "/pic2.jpg"
    ]
}

  RESPONSE

  HTTP/1.1 401 Unauthorized
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
WWW-Authenticate: Bearer authorization_uri="https://login.windows.net/c87x6f33-af21-4461-a5b1-29647d8e9281", error="invalid_token", error_description="The authentication scheme of SharedAccessSignature is not supported."
x-ms-failure-cause: gateway
x-ms-request-id: 3514027b-e731-411c-b8es-cdf77d636284
x-ms-correlation-request-id: 3514137b-e731-411c-b8ee-cdf77d636284
x-ms-routing-request-id: WESTEUROPE:20160219T110919Z:3514037b-e731-411c-b7ee-cdf77d636184
Strict-Transport-Security: max-age=31536000; includeSubDomains
Date: Fri, 19 Feb 2016 11:09:19 GMT
Connection: close
Content-Length: 150

{"error":{"code":"AuthenticationFailedInvalidHeader","message":"Authentication failed. …
Run Code Online (Sandbox Code Playgroud)

azure azure-cdn

6
推荐指数
1
解决办法
8444
查看次数

使用Verizon的Azure CDN - 重写URL以始终加载index.html


上下文


在过去的几天里,我一直在努力解决以下问题,由于CDN的本质和每个新规则的手动审查,我每次最多需要4小时才能部署新规则.

如下面的主题所述,我目前将我的Angular应用程序部署到一个存储帐户,该帐户有一个名为的blob容器cdn

在此输入图像描述

在此blob容器目录中,我的角度项目中的整个文件夹已通过我的CI设置进行复制.dist

在此输入图像描述

CDN配置文件也已设置,指向origin-path被叫/cdn

在此输入图像描述


问题


不幸的是,目前存在一个持续存在的问题,即您无法直接访问默认文件.

  1. 我想要的是将我的Angular应用程序中的所有传入流量重定向到该index.html文件.这是为了满足Angular路由.

    输入具有预期输出的URL

  2. 此外,我想让任何静态文件(例如图像)的请求通过没有任何特定的URL重写.

我已经看过关于这个问题的各种帖子,但没有一个答案似乎涵盖我的情况或没有提供预期的结果.

目前我正在使用Verizon 的Azure CDN规则引擎功能.

关于模式,我使用了下文中提到的所有模式,包括评论中提到的模式.

我还花了至少两天的时间来查找各种其他文章和stackoverflow文章,但它们都没有适合我的情况.

此外,我还创建了自己的正则表达式模式,但是虽然它们在我的测试环境中工作,但一旦将它们部署到CDN,它们就会工作.

我通常最终得到以下结果之一:

  • 顶级域名https://myFancyWebsite.azureedge.net不会重写网址index.html,我会收到一个http错误404
  • 顶级域名将重定向到index.html但是一旦我添加了网址路径就会停止工作https://myFancyWebsite.azureedge.net/login/callback- 一旦404我开始使用,就会再次出现http错误/login/callback
  • 顶级域名会将URL重写为类似于https://myFancyWebsite.azureedge.net/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn ....http错误的内容431

微软的官方文档在我的案例中也没有帮助.

我很确定我不是第一个将Angular应用程序部署到存储帐户的人,并且有人遇到了与我相同的问题.

我感谢所有指出正确方向的信息,因为目前我肯定会考虑放弃整个存储帐户部署.


更新1


使用此处的文章中也提到的以下source模式,我能够处理至少顶级域重写到文件.((?:[^\?]*/)?)($|\?.*)index.html

不幸的是,我还需要一个额外的模式来重定向https://myFancyWebsite.azureedge.net/login/callback …

url-rewriting azure azure-cdn azure-storage-account angular

6
推荐指数
1
解决办法
3070
查看次数

如何为Azure存储Blob静态网站启用Azure CDN?

在Azure存储上启用静态网站后,我已将index.html部署到$webblob容器。https://<name>.<zone>.web.core.windows.net工作正常。

要添加具有HTTPS支持的自定义域,建议使用Azure CDN来访问Blob。在启用该链接的页面上,页面上说

在Azure存储中预览静态网站支持期间,请从“来源类型”下拉菜单中选择“自定义来源”以添加存储Web终结点。在Azure门户中,您需要从CDN配置文件执行此操作,而不是直接在存储帐户中执行此操作。

因此,我选择Custom Origin作为原始类型并<name>.<zone>.web.core.windows.net作为原始主机名。

但是,尝试访问https://<cdnendpointname>.azureedge.net/将我发送到404 Not Found页面。

azure-storage azure-storage-blobs azure-cdn

6
推荐指数
1
解决办法
1948
查看次数

为什么mp3文件在Azure CDN下以https格式提供时会跳过,但在Chrome中从http提供时却不会?

我最近与Microsoft Azure建立了mp3文件(口语播客)的内容分发网络.起初一切正常,但最近文件开始"跳过",即重置自己.例如,当玩家到达文件的3:30标记时,它将返回到文件的0:15标记.出于某种原因,只有在https下提供文件时才会发生这种情况,而不是在http下

具体细节:

  1. 它只发生在Chrome上 - 我也在Edge和Firefox下测试过 - 它们运行得很好
  2. 它发生在多台计算机上
  3. 只有该文件的https版本有问题,http版本没问题
  4. 它使用普通的香草音频标签 - 没有花哨的玩家参与
  5. 发生这种情况时,开发工具中的控制台中没有条目,媒体窗口中也没有新的下载
  6. 我将相同的文件上传到Amazon S3 - 将它放在同一个普通的香草播放器中,它在https下播放得很好.

怎么会发生这种情况?

来自Azure的NOT工作请求的标头

  • 请求方法:GET
  • 状态代码:206部分内容(来自磁盘缓存)
  • 推荐人政策:no-referrer-when-downgrade
  • Accept-Ranges:字节
  • Access-Control-Allow-Origin:*;
  • Access-Control-Expose-Headers:x-ms-request-id;
  • 内容 - 处理:附件; 文件名= XXXXXXXXXXX.mp3;
  • 内容长度:76434500;
  • 内容范围:字节0-76434499/76434500;
  • 内容类型:audio/mpeg; audio/mpeg3 ;;
  • 日期:星期一;
  • ETag:"0x8D5EC5B899726B0";
  • 最后修改:周三;
  • 服务器:Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0;
  • 状态:206;
  • x-ms-blob-type:BlockBlob;
  • x-ms-lease-state:可用;
  • x-ms-lease-status:unlocked;
  • X-MS-Ref:0DGxVWwAAAAA2BOMWL9GzRqSzc9yi5SF4QkwyRURHRTA1MTIAMzc1ZmRlZDMtMjA3My00Y2YxLTljZGMtNzc4NGMxYmI3ZmZi;
  • x-ms-request-id:998f9297-301e-00bc-2945-22fa9f000000;
  • x-ms-version:2014-02-14;

来自Azure的工作请求的标头

  • 请求方法:GET;
  • 状态代码:206部分内容(来自磁盘缓存);
  • 远程地址:52.239.152.234:80;
  • 推荐人政策:no-referrer-when-downgrade;
  • Accept-Ranges:bytes;
  • Access-Control-Allow-Origin:*;
  • Access-Control-Expose-Headers:x-ms-request-id;
  • 内容 - 处理:附件; 文件名= XXXXXXXXXXX.mp3;
  • 内容长度:76434500;
  • 内容范围:字节0-76434499/76434500;
  • 内容类型:audio/mpeg; audio/mpeg3 ;;
  • 日期:星期一;
  • ETag:"0x8D5EC5B899726B0";
  • 最后修改:周三;
  • 服务器:Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0;
  • x-ms-blob-type:BlockBlob;
  • x-ms-lease-state:可用;
  • x-ms-lease-status:unlocked;
  • x-ms-request-id:6246c264-401e-017b-1b47-22c00b000000;
  • x-ms-version:2014-02-14;

来自S3的工作请求的标题

  • Accept-Ranges:bytes;
  • 内容长度:76303428;
  • 内容范围:字节131072-76434499/76434500; …

google-chrome azure-storage-blobs azure-cdn

6
推荐指数
0
解决办法
129
查看次数

无法使用 Azure CLI 清除 Azure CDN 终结点

我正在使用 Azure CLI 清除 Azure CDN 端点中的所有内容。我从 Microsoft Docs 得到了一个参考:https : //docs.microsoft.com/en-us/cli/azure/cdn/endpoint? view = azure-cli- latest

我正在尝试使用正确的参数完全相同的命令,但它说 - “未找到端点。请验证资源、组或其父资源是否存在。”

az cdn endpoint purge -g <my-resource-group> --profile-name \
<name-of-cdn-profile> --content-paths '/*' --name <cdn-endpoint-name>
Run Code Online (Sandbox Code Playgroud)

-呈现上述错误

但是,当我发出 list 命令时,我可以看到 CDN 端点:

az cdn endpoint list -g <my-resource-group> --profile-name <cd>n-profile-name>
Run Code Online (Sandbox Code Playgroud)

上面的命令工作正常并返回我试图清除的端点

有人有类似的经历吗?

蒂亚!

azure azure-cdn azure-cli

6
推荐指数
1
解决办法
2441
查看次数