Ao usar sessões fixas no ELB, o balanceador de carga adicionará os dois cabeçalhos a seguir à resposta: Set-Cookie
(com o cookie AWSELB) e Cache-Control: no-cache="set-cookie"
.
Se o min-ttl em seu CF Distro for 0 (que agora é o valor padrão), o CloudFront usará a diretiva no-cache. Um representante da Amazon me ligou: w3.org - RFC2616 .
O seguinte da seção no-cache se aplica:
If the no-cache directive does specify one or more field-names, then a cache MAY use the response to satisfy a subsequent request, subject to any other restrictions on caching. However, the specified field-name(s) MUST NOT be sent in the response to a subsequent request without successful revalidation with the origin server
No entanto, pela minha experiência, o CloudFront sempre revalida o objeto se a diretiva no-cache
estiver definida. Eu acredito, eles deveriam na verdade apenas omitir o cabeçalho Set-Cookie conforme especificado no no-cache
para começar.
O conserto rápido foi criar uma nova distribuição do CF e especificar manualmente um min-ttl maior que 0, o que parece substituir a diretiva no-cache
. Você precisa usar a API ou um programa de terceiros para fazer, pois o AWS Console não permite modificar o min-ttl.