Amazon Cloud Front è il servizio di CDN (content delivery network) di Amazon utilizzato per servire in modo semplice contenuti statici con bassa latenza e velocità di trasferimento elevata.
Per fornire contenuti agli utenti finali con una minore latenza e velocità, Amazon CloudFront utilizza una rete globale di nodi per la distribuzione di contenuti e può essere agganciato al servizio di storage Amazon S3 oppure ad un qualunque altro server web.
In generale per servire in maniera ottimale contenuti statici quali immagini, css e javascript occorre minificare e codificare in gzip i contenuti richiesti.
Purtroppo Amazon Cloud Front non effettua nessun tipo di encoding e all’atto di una richiesta non presente in cache effettua una chiamata HTTP 1.0 al server di origine Amazon S3 o server web esterno.
Di default in molti server web es. Nginx il gzip_http_version è impostato di default solo per 1.1 così che i contenuti verranno inviati a Cloudfront in modo non compresso, quindi ad un costo maggiore di banda e di tempi di attesa.
Ecco la configurazione di un server Nginx per supportare GZIP su contenuti statici dietro Amazon Cloudfront:
##
# Gzip Settings
##
gzip on;
gzip_disable “msie6”;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 9;
gzip_buffers 16 8k;
#gzip_http_version 1.1;
gzip_http_version 1.0;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;