Skip to content

Commit 1462f03

Browse files
authored
Merge pull request #225983 from johndowns/front-door-breaking-changes-february-2023
Front Door - Document recent breaking changes
2 parents 4a28278 + df57828 commit 1462f03

File tree

3 files changed

+30
-12
lines changed

3 files changed

+30
-12
lines changed

articles/frontdoor/end-to-end-tls.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ For your own custom TLS/SSL certificate:
103103

104104
## Supported cipher suites
105105

106-
For TLS1.2 the following cipher suites are supported:
106+
For TLS 1.2 the following cipher suites are supported:
107107

108108
* TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
109109
* TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
@@ -115,7 +115,7 @@ For TLS1.2 the following cipher suites are supported:
115115
> [!NOTE]
116116
> For Windows 10 and later versions, we recommend enabling one or both of the ECDHE_GCM cipher suites for better security. Windows 8.1, 8, and 7 aren't compatible with these ECDHE_GCM cipher suites. The ECDHE_CBC and DHE cipher suites have been provided for compatibility with those operating systems.
117117
118-
Using custom domains with TLS1.0/1.1 enabled the following cipher suites are supported:
118+
When using custom domains with TLS 1.0 and 1.1 enabled, the following cipher suites are supported:
119119

120120
* TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
121121
* TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
@@ -132,7 +132,7 @@ Using custom domains with TLS1.0/1.1 enabled the following cipher suites are sup
132132
* TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
133133
* TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
134134

135-
Azure Front Door doesn’t support configuring specific cipher suites.
135+
Azure Front Door doesn’t support disabling or configuring specific cipher suites for your profile.
136136

137137
## Next steps
138138

articles/frontdoor/front-door-caching.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: duongau
66
ms.service: frontdoor
77
ms.topic: article
88
ms.workload: infrastructure-services
9-
ms.date: 01/16/2023
9+
ms.date: 02/16/2023
1010
ms.author: duau
1111
zone_pivot_groups: front-door-tiers
1212
---
@@ -23,11 +23,22 @@ Only requests that use the `GET` request method are cacheable. All other request
2323

2424
## Delivery of large files
2525

26-
Azure Front Door delivers large files without a cap on file size. If caching is enabled, Front Door uses a technique called *object chunking*. When a large file is requested, Front Door retrieves smaller pieces of the file from the origin. After receiving a full or byte-range file request, the Front Door environment requests the file from the origin in chunks of 8 MB.
26+
Azure Front Door delivers large files without a cap on file size. If caching is enabled, Front Door uses a technique called *object chunking*. When a large file is requested, Front Door retrieves smaller pieces of the file from the origin. After receiving a full file request or byte-range file request, the Azure Front Door environment requests the file from the origin in chunks of 8 MB.
2727

28-
After the chunk arrives at the Front Door environment, it's cached and immediately served to the user. Front Door then pre-fetches the next chunk in parallel. This pre-fetch ensures that the content stays one chunk ahead of the user, which reduces latency. This process continues until the entire file gets downloaded (if requested) or the client closes the connection. For more information on the byte-range request, read [RFC 7233](https://www.rfc-editor.org/info/rfc7233).
28+
After the chunk arrives at the Azure Front Door environment, it's cached and immediately served to the user. Front Door then pre-fetches the next chunk in parallel. This pre-fetch ensures that the content stays one chunk ahead of the user, which reduces latency. This process continues until the entire file gets downloaded (if requested) or the client closes the connection. For more information on the byte-range request, read [RFC 7233](https://www.rfc-editor.org/info/rfc7233).
2929

30-
Front Door caches any chunks as they're received so the entire file doesn't need to be cached on the Front Door cache. Ensuing requests for the file or byte ranges are served from the cache. If the chunks aren't all cached, pre-fetching is used to request chunks from the origin. This optimization relies on the origin's ability to support byte-range requests. If the origin doesn't support byte-range requests, this optimization isn't effective.
30+
Front Door caches any chunks as they're received so the entire file doesn't need to be cached on the Front Door cache. Subsequent requests for the file or byte ranges are served from the cache. If the chunks aren't all cached, pre-fetching is used to request chunks from the origin.
31+
32+
This optimization relies on the origin's ability to support byte-range requests. If the origin doesn't support byte-range requests, or if it doesn't handle range requests correctly, then this optimization isn't effective.
33+
34+
When your origin responds to a request with a `Range` header, it must respond in one of the following ways:
35+
36+
- **Return a ranged response.** The response must use HTTP status code 206. Also, the `Content-Range` response header must be present, and must match the actual length of the content that your origin returns. If your origin doesn't send the correct response headers with valid values, Azure Front Door doesn't cache the response, and you might see inconsistent behavior.
37+
38+
> [!TIP]
39+
> If your origin compresses the response, ensure that the `Content-Range` header value matches the actual length of the compressed response.
40+
41+
- **Return a non-ranged response.** If your origin can't handle range requests, it can ignore the `Range` header and return a non-ranged response. Ensure that the origin returns a response status code other than 206. For example, the origin might return a 200 OK response.
3142

3243
## File compression
3344

@@ -154,7 +165,7 @@ These formats are supported in the lists of paths to purge:
154165
> **Purging wildcard domains**: Specifying cached paths for purging as discussed in this section doesn't apply to any wildcard domains that are associated with the Front Door. Currently, we don't support directly purging wildcard domains. You can purge paths from specific subdomains by specifying that specfic subdomain and the purge path. For example, if my Front Door has `*.contoso.com`, I can purge assets of my subdomain `foo.contoso.com` by typing `foo.contoso.com/path/*`. Currently, specifying host names in the purge content path is limited to subdomains of wildcard domains, if applicable.
155166
>
156167
157-
Cache purges on the Front Door are case-insensitive. Additionally, they're query string agnostic, meaning purging a URL will purge all query-string variations of it.
168+
Cache purges on the Front Door are case-insensitive. Additionally, they're query string agnostic, which means that purging a URL purges all query string variations of it.
158169

159170
::: zone-end
160171

@@ -190,8 +201,8 @@ If the origin response is cacheable, then the `Set-Cookie` header is removed bef
190201

191202
In addition, Front Door attaches the `X-Cache` header to all responses. The `X-Cache` response header includes one of the following values:
192203

193-
- `TCP_HIT` or `TCP_REMOTE_HIT`: The first 8MB chunk of the response is a cache hit, and the content is served from the Front Door cache.
194-
- `TCP_MISS`: The first 8MB chunk of the response is a cache miss, and the content is fetched from the origin.
204+
- `TCP_HIT` or `TCP_REMOTE_HIT`: The first 8 MB chunk of the response is a cache hit, and the content is served from the Front Door cache.
205+
- `TCP_MISS`: The first 8 MB chunk of the response is a cache miss, and the content is fetched from the origin.
195206
- `PRIVATE_NOSTORE`: Request can't be cached because the *Cache-Control* response header is set to either *private* or *no-store*.
196207
- `CONFIG_NOCACHE`: Request is configured to not cache in the Front Door profile.
197208

@@ -211,7 +222,7 @@ Cache behavior and duration can be configured in Rules Engine. Rules Engine cach
211222

212223
* **When caching is disabled**, Azure Front Door doesn’t cache the response contents, irrespective of the origin response directives.
213224

214-
* **When caching is enabled**, the cache behavior is different based on the cache behavior value applied by the Rules Engine:
225+
* **When caching is enabled**, the cache behavior differs based on the cache behavior value applied by the Rules Engine:
215226

216227
* **Honor origin**: Azure Front Door will always honor origin response header directive. If the origin directive is missing, Azure Front Door will cache contents anywhere from one to three days.
217228
* **Override always**: Azure Front Door will always override with the cache duration, meaning that it will cache the contents for the cache duration ignoring the values from origin response directives. This behavior will only be applied if the response is cacheable.

articles/frontdoor/front-door-faq.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
ms.service: frontdoor
88
ms.topic: faq
99
ms.workload: infrastructure-services
10-
ms.date: 10/31/2022
10+
ms.date: 02/16/2023
1111
title: Frequently asked questions for Azure Front Door
1212
summary: |
1313
This article answers common questions about Azure Front Door features and functionality. If you don't see the answer to your question, you can contact us through the following channels (in escalating order):
@@ -178,6 +178,13 @@ sections:
178178
answer: |
179179
Azure Front Door is a globally distributed multi-tenant platform with huge volumes of capacity to cater to your application's scalability needs. Delivered from the edge of Microsoft's global network, Front Door provides global load-balancing capability that allows you to fail over your entire application or even individual microservices across regions or different clouds.
180180
181+
- question: |
182+
Why aren't ranged responses from my origin getting cached?
183+
answer: |
184+
Ensure that your origin sends the `Content-Range` response header, and that the value matches the actual length of the response body.
185+
186+
For more information, see [Delivery of large files](front-door-caching.md#delivery-of-large-files).
187+
181188
- name: TLS configuration
182189
questions:
183190

0 commit comments

Comments
 (0)