Исправляем заголовок Vary: Accept-Encoding!

В данной статье мы расскажем, что необходимо сделать, если на сервере со связкой apache+nginx Вы получили низкую оценку «Vary: Accept-Encoding».

Vary: Accept-Encoding

Заголовок Vary Accept-Encoding информирует проксирующий сервер, что необходимо сжать ресурс: как сжатую так и не сжатую версию сайта. Это способствует обхождению разного рода проблем при работе с прокси-серверами. Некоторые из них не принимают присутствие заголовка Content-Encoding.

  1. Нам необходимо включить сжатие с помощью gzip. Для этого нам необходимо зайти в конфиг nginx /etc/nginx/nginx.conf  и прописать след. значение:
  2.  gzip  on; # Активируем кэширование с помощью gzip.
    
    gzip_comp_level 5; # Устанавливаем степень сжатия, в нашем случаем это 5.
    
    gzip_vary on; # Оставляем выдачу ответа "Vary: Accept-Encoding".
    
    gzip_static off; # Не разрешаем прочитать сжатый файл.
    
    gzip_types text/css text/plain application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js; # Указываем расширения файлов, которые будут подвергаться кэшированию.
    
    gzip_proxied any; # Разрешаем сжатие для всех проксированных запросов.

    Vary: Accept-Encoding-2

  3. Необходимо добавить правило в файл .htaccess:
<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>

Данный файл (.htaccess) находится в корневой папке Вашего сайта.
Vary: Accept-Encoding-3

После этих действий перезагружаем apache и nginx, проверяем результат.

Vary: Accept-Encoding

Исправляем заголовок Vary: Accept-Encoding!: 2 комментария

  1. круто расписано! спасибо, очень помогло.
    обучение вэб программированию тут

  2. Большое спасибо, Вы очень помогли!

Обсуждение закрыто.