Страница 1 из 1

HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 10:44 am
vk22
Добрый день!
Подскажите как правильно отдавать HTTP заголовки. Интересуют заголовки expires, vary
В конфиг для сайта /etc/nginx/vhosts/user/site.ru.conf в server вставляю:

Код: выделить все
   location ~* ^.+\.(jpg|jpeg|gif|png|swf|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
                   root /var/www/user/data/www/site.ru;
                   access_log off;
                   expires 30d;
            }


Но в заголовке выдает Expires: Thu, 19 Nov 1981 08:52:00 GMT

Там же вставляю

Код: выделить все
        gzip  on;
        gzip_min_length  1000;
        gzip_proxied     any;
        gzip_vary        on;
        gzip_static      off;
        gzip_types       text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json;
        gzip_comp_level  8;
        gzip_buffers     64 8k;


Но хромовский PageSpeed говорит: Укажите заголовок Vary: Accept-Encoding для следующих файлов (список из css и js файлов)

Как же быть?

Re: HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 1:43 pm
swg
У вас только nginx, без apache?

Re: HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 2:40 pm
vk22
nginx+apache

Re: HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 2:55 pm
ls
Что-то у меня предположений кроме как того что не перезапустили nginx вообще никаких, так как expires в таком виде уж точно должны работать можно пробовать писать или внутри server или внутри location или вообще глобально в http
А если вы проверите работу gzip видно что файлы сжатые?
Код: выделить все
wget -O /dev/null -S --header="accept-encoding: gzip" http://site.ru/style.css

в ответе должно быть
Content-Encoding: gzip

Re: HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 2:59 pm
swg
по Expires
Ручной анализ заголовков, по запросам на nginx http://test.ru/ и напрямую на apache http://test.ru:[порт apache]/ (если он на 127.0.0.1 только, то временно открыть). Также убедится, что клиент передаёт IF_MODIFIED_SINCE.

по Accept-Encoding
nginx, похоже работает верно (и все же запрос на него приходит) и отдает gz. А apache, похоже не совсем верно настроен (гуглить на тему Header set Content-Encoding: gzip)

Re: HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 3:12 pm
ls
Мне кажется в ситуации ТС надо вообще отключить сжатие в apache и все настраивать только в nginx чтобы не было дублирования

Re: HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 3:22 pm
vk22
При проверке
Код: выделить все
wget -O /dev/null -S --header="accept-encoding: gzip" http://site.ru/style.css

выдает:
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 27 Feb 2015 12:10:15 GMT
Content-Type: text/css
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: max-age=2592000
Content-Encoding: gzip
ETag: "54f044f7-2c1b5"
Expires: Sun, 29 Mar 2015 11:15:48 GMT
Last-Modified: Fri, 27 Feb 2015 10:20:39 GMT
Vary: Accept-Encoding

Но если проверить

Код: выделить все
wget -O /dev/null -S --header="accept-encoding: gzip" http://site.ru/


то выдает:
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Fri, 27 Feb 2015 12:11:15 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: PHP/5.3.3
P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"
X-Powered-CMS: Bitrix Site Manager (46a34300043d98093473e82b62d741ae)
Set-Cookie: PHPSESSID=rho7u29uie4skejtvbqv5fu6b1; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Frame-Options: GOFORIT
Content-Encoding: gzip

Это нормально? + google pageSpeed все равно ругается, говорит "Укажите заголовок Vary: Accept-Encoding"

Re: HTTP заголовки

СообщениеДобавлено: Пт фев 27, 2015 3:32 pm
swg
Нормально. http://dream-notes.ru/life/ideas/84-ust ... oding.html
p.s. он у меня на такое ругается :-)
Оптимизируйте работу CSS на следующих ресурсах:
http://fonts.googleapis.com/css?family= ... ,400italic