Nginx Cache-Control

Я обслуживаю свой статический контент с помощью ngnix.

location / static {
      псевдоним /opt/static/blog/;
      access_log off;
      Этаги на;
      etag_hash on;
      etag_hash_method md5;
      истекает 1d;
      add_header Pragma "public";
      add_header Cache-Control  "public, must-revalidate, proxy-revalidate";
}

Результирующий заголовок выглядит так:

Cache-Control: общедоступный, должен пройти повторную проверку, прокси-выполнить повторную проверку
Cache-Control: макс возраста =86400
Подключение: закрыть
Content-Encoding: GZIP
Content-Type: применение / х-Javascript; кодировка = UTF-8
Дата: вт, 11 сен 2012 08:39:05 GMT
Etag:e2266fb151337fc1996218fafcf3bcee
Истекает: Ср, 12 сентября 2012 08:39:05 GMT
Последнее изменение: вторник, 11 сентября 2012 г. 06:22:41 GMT
Pragma: общественность
Сервер: Nginx/1.2.2
Transfer-Encoding: фрагментированный
Vary:Accept-Encoding

Почему nginx отправляет 2 записи Cache-Control, это может быть проблемой для клиентов?

1 ответ

Решение

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html

Множество полей заголовка сообщения с одним и тем же именем поля МОЖЕТ присутствовать в сообщении тогда и только тогда, когда все значение поля для этого поля заголовка определено как список, разделенный запятыми [т.е. #(значения)]. ДОЛЖНО быть возможно объединить несколько полей заголовка в одну пару "field-name: field-value", не изменяя семантику сообщения, добавляя каждое последующее значение поля к первому, каждое из которых разделяется запятой. Порядок, в котором принимаются поля заголовка с одним и тем же именем поля, поэтому важен для интерпретации объединенного значения поля, и, таким образом, прокси-сервер НЕ ДОЛЖЕН изменять порядок этих значений поля при пересылке сообщения.

Другие вопросы по тегам