brotli_comp_level 11;
Это слишком высоко. Для динамического c содержимого рекомендуется 4
.
Вы не можете делать то, что хотите, с текущей настройкой.
Если , вы можете просто настроить восходящий поток вместо этого, чтобы быть способным к бротли, вы можете кэшировать сжатые ответы от него, поместив $http_accept_encoding
как часть ключа кеша. Однако одного этого недостаточно, потому что вам придется нормализовать его значение (подумайте, все возможные Accept-Encoding
входящие заголовки приведут к раздутому и крайне неэффективному кешу).
Если вы действительно заботясь о клиентах с поддержкой Brotli (теперь, когда большинство браузеров поддерживают Brotli в любом случае) и о максимально возможном уровне сжатия, вы можете принудительно применить сжатие к восходящему потоку с поддержкой brotli, предоставляя Accept-Encoding: br
при передаче через прокси, что всегда приводит к кешированию имея зашифрованный ответ. (тогда вам не нужно настраивать ключ кеша). Однако для этого требуется функция, которая в настоящее время недоступна, например, я называю ее unbrotli
.
Идея состоит в том, что все идет вверх по течению, говоря: «Я хочу закодированный Бротли ответ». Верхний поток предоставляет Brotli-ed ответ (где это применимо, конечно, например для текстовых ответов). Но для клиентов, которые поддерживают только gzip или вообще не используют сжатие, вещи должны динамически распаковываться из Brotli (очень низкая нагрузка на процессор). Это не так уж и здорово, но число неспособных клиентов Brotli уменьшается.