Di seguito ha lavorato per me.
In realtà ho attivato gzip a livello di nginx, non in Django o Django Rest Framework.
file di /etc/nginx/nginx.conf:
http {
#... other settings ...#
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
}
Questo lascia la compressione fino al server nginx e, come la maggior parte dei browser moderni automaticamente sapere come estrarre (decomprimere) compressione gzip, non l'ho fatto è necessario fare qualsiasi cosa sul mio lato client - anche quando si ricevono dati json all'interno di un'app Angular spa.
Il mio carico di lavoro JSON da 1,3 MB è stato trasformato in un carico utile di circa 180 KB.
Un modo piuttosto veloce e veloce per salvare i dati di MB.
Assicurarsi di considerare il compromesso delle prestazioni della CPU/latenza aggiuntiva per eseguire la compressione. –
@dwightgunning conosci qualche documento che potrebbe dare indizi su come farlo? – aumo
http://tweaked.io/guide/nginx/ delinea il compromesso. Finché hai headroom della CPU, dovresti stare bene. Basta prendere qualcosa di sano e andare avanti ;-) –