Set Vary: Accept-Encoding Header (nginx) - PullRequest
29 голосов
/ 10 июля 2011

У меня есть сервер nginx, и я не могу найти никакой информации о том, как отправлять заголовки Vary: Accept-Encoding для файлов CSS и JS.У кого-нибудь есть информация об этом?

Спасибо!

Ответы [ 4 ]

40 голосов
/ 23 июля 2011

Это из документации nginx .

gzip_vary
syntax: gzip_vary on|off
default: gzip_vary off
context: http, server, location

Включает заголовок ответа "Vary: Accept-Encoding". Обратите внимание, что это заголовок заставляет IE 4-6 не кэшировать содержимое из-за ошибки (см. 2 ).

Там, если вы просто добавите gzip_vary on;, он должен выполнить свою работу.

Также убедитесь, что у вас активны любые директивы gzip, gzip_static или gunzip.

30 голосов
/ 09 февраля 2014

Внутри server { домена / субдомена, который вы хотите установить, добавьте

    gzip on;
    gzip_min_length  1100;
    gzip_buffers  4 32k;
    gzip_types    text/plain application/x-javascript text/xml text/css;
    gzip_vary on;

Сохраните файл и перезапустите nginx.

1 голос
/ 21 июля 2015

Simple. В Nginx conf:

vim /etc/nginx/nginx.conf

Добавьте следующее внизу под разделом:

    ##
    # 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;

Просто раскомментируйте параметр gzip_vary on; и перезапустите или перезагрузите службу nginx:

service nginx restart

Это должно решить проблему. Если вы используете старую версию nginx, вам может потребоваться включить gzip on;, так как это требуется для работы заголовка var.

Надеюсь, это поможет. К вашему сведению, это относится ко всем файлам conf сервера / сайта, если они не перезаписаны в соответствующих блоках сервера. server {}

Информация об источнике для nginx, apache и IIS: https://www.maxcdn.com/blog/accept-encoding-its-vary-important/

0 голосов
/ 03 апреля 2017

Если вы пробовали другие ответы и по-прежнему видите отклонения (например, если вы тестируете скорость своей страницы с помощью GTMetrix), может помочь следующее:

Убедитесь, что все ваши gzip_types также установлены в http / секции /etc/nginx/nginx.conf.

Блок сервера в / etc / nginx / sites-available / * - это место, где вы можете установить заголовок var и gzip_types, но в зависимости от настроек вашего сайта вы можете обрабатывать и возвращать файлы до того, как они достигнут этого. бит конфигурации.

В /etc/nginx/nginx.conf вы найдете раздел 'http' - здесь также есть gzip_types и gzip_vary.

Для меня - CSS и JS - это статические файлы, и они обрабатывались перед тем, как перейти к файлу, доступному на сайтах (wordpress) nginx (перед ним лак).

Таким образом, добавление полного списка gzip_types в раздел http в nginx.conf устранило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...