我们正尝试在Azure CDN上通过ETag 启用HTTP压缩(gzip)和HTTP 304缓存.我们已经发现启用Azure CDN压缩的问题,但现在我们无法同时使用压缩和ETag缓存(304s).此问题已在此处发布到Azure论坛.
https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.js
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
我正在创建一个网站,用户可以在我的网站上创建新页面时上传各种图像.Microsoft提供什么服务来托管许多用户上传的图像.Blob会满足吗?如果是这样,如果我要添加CDN,是否值得?据我所知,CDN将图像复制到各种服务器上.如果我的本地服务器有100万张图像,这是否意味着所有其他位置也会有100万张图像?这会非常昂贵吗?
我试图合并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中删除它?
我对我们的 CDN 感到担忧,因为我们计划应用自定义域。我了解无法将 CNAME 记录映射到根域(例如 contoso.com)的部分。我想寻求一种解决方法,让我们说是的,我们已经将它分配给了 www.contoso.com。但是现在人们不再使用 www 子域,只会在 URL 地址栏中输入 constoso.com ,因此它只会返回 404,因为它没有被映射,因此会失去潜在客户。您建议的解决方案或解决方法是什么?
正如上面标题中提到的,我有一个带有WebRole的云服务,它运行一个Web应用程序www.myappname.com.我已采取所有必要步骤,使用IIS上的url rewrite模块从我的应用程序中提供CDN内容.这工作正常,但:
我正在创建一个删除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) 在过去的几天里,我一直在努力解决以下问题,由于CDN的本质和每个新规则的手动审查,我每次最多需要4小时才能部署新规则.
如下面的主题所述,我目前将我的Angular应用程序部署到一个存储帐户,该帐户有一个名为的blob容器cdn
在此blob容器的根目录中,我的角度项目中的整个文件夹已通过我的CI设置进行复制.dist
CDN配置文件也已设置,指向origin-path被叫/cdn
不幸的是,目前存在一个持续存在的问题,即您无法直接访问默认文件.
我已经看过关于这个问题的各种帖子,但没有一个答案似乎涵盖我的情况或没有提供预期的结果.
目前我正在使用Verizon 的Azure CDN的规则引擎功能.
关于模式,我使用了下文中提到的所有模式,包括评论中提到的模式.
我还花了至少两天的时间来查找各种其他文章和stackoverflow文章,但它们都没有适合我的情况.
此外,我还创建了自己的正则表达式模式,但是虽然它们在我的测试环境中工作,但一旦将它们部署到CDN,它们就会工作.
我通常最终得到以下结果之一:
https://myFancyWebsite.azureedge.net不会重写网址index.html,我会收到一个http错误404index.html但是一旦我添加了网址路径就会停止工作https://myFancyWebsite.azureedge.net/login/callback- 一旦404我开始使用,就会再次出现http错误/login/callbackhttps://myFancyWebsite.azureedge.net/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn ....http错误的内容431微软的官方文档在我的案例中也没有帮助.
我很确定我不是第一个将Angular应用程序部署到存储帐户的人,并且有人遇到了与我相同的问题.
我感谢所有指出正确方向的信息,因为目前我肯定会考虑放弃整个存储帐户部署.
使用此处的文章中也提到的以下source模式,我能够处理至少顶级域重写到文件.((?:[^\?]*/)?)($|\?.*)index.html
不幸的是,我还需要一个额外的模式来重定向https://myFancyWebsite.azureedge.net/login/callback …
在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页面。
我最近与Microsoft Azure建立了mp3文件(口语播客)的内容分发网络.起初一切正常,但最近文件开始"跳过",即重置自己.例如,当玩家到达文件的3:30标记时,它将返回到文件的0:15标记.出于某种原因,只有在https下提供文件时才会发生这种情况,而不是在http下
具体细节:
怎么会发生这种情况?
来自Azure的NOT工作请求的标头
来自Azure的工作请求的标头
来自S3的工作请求的标题
我正在使用 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)
上面的命令工作正常并返回我试图清除的端点
有人有类似的经历吗?
蒂亚!