Следующие работал для меня.
Я фактически превратил gzip на уровне nginx, а не в Django или Django Rest Framework.
/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;
}
Это оставляет сжатия до сервера Nginx и так как большинство современных браузеров автоматически знают, как извлечь (распаковывать) сжатие GZIP, я не сделал нужно делать что-либо на моей стороне клиента - даже при получении json-данных в приложении Angular spa.
My 1.3 MB полезная нагрузка JSON превратилась в полезную нагрузку 180 КБ.
Очень быстрый и быстрый способ сохранения данных МБ.
Обязательно рассмотрите компромисс производительности дополнительного CPU/latency для выполнения сжатия. –
@ dwightgunning Знаете ли вы какую-нибудь бумагу, которая даст подсказки? – aumo
http://tweaked.io/guide/nginx/ описывает компромисс. Пока у вас есть запас процессора, вы должны быть в порядке. Просто выберите что-то здравомыслящее и перейдите ;-) –