Eu tenho procurado maneiras de tornar meu site carregado mais rapidamente e uma maneira que eu gostaria de explorar é fazer um uso maior do Cloudfront.
Como o Cloudfront não foi originalmente projetado como uma CDN de origem personalizada e porque não suporta gzipping, até agora eu o tenho usado para hospedar todas as minhas imagens, que são referenciadas por seu nome de usuário do Cloudfront no código do meu site e otimizadas com muito -futures cabeçalhos.
Os arquivos CSS e javascript, por outro lado, estão hospedados no meu próprio servidor, porque até agora eu tinha a impressão de que eles não podiam ser servidos com gzip no Cloudfront e que o ganho com gzipping (cerca de 75%) supera esse valor. do uso de uma CDN (cerca de 50%): o Amazon S3 (e, portanto, o Cloudfront) não suportava a veiculação de conteúdo compactado com gzip de maneira padrão, usando o cabeçalho HTTP Accept-Encoding enviado pelos navegadores para indicar seu suporte à compactação gzip, e então eles não foram capazes de compactar e servir componentes rapidamente.
Assim, tive a impressão, até agora, de que era preciso escolher entre duas alternativas:
mova todos os ativos para o Amazon CloudFront e esqueça o GZipping;
mantenha os componentes auto-hospedados e configure nosso servidor para detectar solicitações recebidas e executar GZipping on-the-fly conforme apropriado, que foi o que eu escolhi até agora.
Não foram soluções alternativas para resolver este problema, mas essencialmente estas não funcionou . [ link ].
Agora, parece Amazon CloudFront oferece suporte a origem costume, e que agora é possível usar o método padrão HTTP Accept-Encoding para servir conteúdo compactado se você estiver usando uma origem personalizado [ ligação ].
Até o momento, não consegui implementar o novo recurso no meu servidor. A postagem do blog que eu vinculei acima, que é a única que encontrei detalhando a alteração, parece implicar que você só pode ativar o gzipping (soluções alternativas de barra, que eu não quero usar), se você optar pela origem personalizada, que Prefiro não: acho mais simples hospedar os arquivamentos correspondentes no meu servidor Cloudfront e vincular a eles a partir daí. Apesar de ler atentamente a documentação, não sei:
se o novo recurso significa que os arquivos devem ser hospedados no meu próprio servidor de domínio por origem personalizada e, em caso afirmativo, qual configuração de código conseguirá isso;
como configurar os cabeçalhos css e javascript para garantir que eles sejam exibidos com gzip no Cloudfront.