Вопрос про кеширование Nginx

12
D
На сайте с 28.06.2008
Offline
1114
1431

В секции http прописано

# Настройки кеширования

fastcgi_cache_path /var/cache/nginx/site levels=1:2 keys_zone=site:10m max_size=128m inactive=24h;
fastcgi_temp_path /tmp/nginx 1 2;
fastcgi_cache_key "$request_method|$host|$request_uri";
fastcgi_ignore_headers "Cache-Control" "Expires";
fastcgi_cache_min_uses 1;
fastcgi_cache_valid 200 301 302 304 3h;
fastcgi_cache_use_stale error timeout invalid_header http_500;

В секции server

# caching of files
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt|ico|pdf|flv)$ {
expires 7d;
}

Вопрос:

правильно ли я понимаю что при многократной перезагрузке страницы я все время вижу ответ сервера 200, а не 304 - потому что я сам указал кешировать 200 ответ .

fastcgi_cache_valid 200

Само кеширование работает, я проверял, меня только смущает этот 200-й ответ, может правильнее все же 304, если файл или страница не изменена ?

Я думал что показатель наглухо закешированной страницы - это 304 ответ от всего.... это не так?

Andreyka
На сайте с 19.02.2005
Offline
822
#1

А чего достигнуть-то хотите?

Не стоит плодить сущности без необходимости
D
На сайте с 28.06.2008
Offline
1114
#2

Понять хочу правильно ли я все сделал. Меня смущает что я вижу 200 ответ при перезагрузке, а не 304...

Andreyka
На сайте с 19.02.2005
Offline
822
#3

Вы имеете в виду что у вас один и тот-же URI может вернуть когда 200 а когда и 304?

D
На сайте с 28.06.2008
Offline
1114
#4

Нет - я хочу понять, при правильно настроенном кешировании в Nginx - главная и файлы отдают 200 ответ или 304 (при перезагрузке) ?

M
На сайте с 01.12.2009
Offline
235
#5

если вы не меняете документ то получите ответ 200 - если меняете то 304.

При перезагрузке, тоже самое будет.

Кеш работает отдельно от отдачи кодов, но имеет на них влияния. пока в кеши или не будут удалены из кеша.

Администратор Linux,Freebsd. построения крупных проектов.
D
На сайте с 28.06.2008
Offline
1114
#6
madoff:
если вы не меняете документ то получите ответ 200 - если меняете то 304.

Я вот тут думал что диаметрально наоборот!

Если не изменился - 304

Измнеился - 200. Я не прав?

M
На сайте с 01.12.2009
Offline
235
#7

не правы, 304 это если изменился, 200 это ответ когда документ был отдан.

D
На сайте с 28.06.2008
Offline
1114
#8
madoff:
не правы, 304 это если изменился.

Цитирую википедию...

304 Not Modified («не изменялось»)
M
На сайте с 01.12.2009
Offline
235
#9
Dram:
Цитирую википедию...

Да наверное не прав, освежил мозг, он относится к передаче от клиента.

вы правильно получаете ответ 200.

304 это опрос на предмет не изменен.

Как-то так.:)

Просто сам запрос 304 - не характерный для каких либо штатных действий, почему он вас так заинтересовал, Вы можете его добавить к 200, так как запрос 304 - "не изменен" скорей всего попадает в кеш.

И кстати TC - если запрос 304 получит информацию что не совпадет с не изменен, то он запросит новый документ... просто сам смысл я правильно передал, просто не правильно запрос описал ;)

D
На сайте с 28.06.2008
Offline
1114
#10

Повторю как я себе это "представлял"

1. Запрос к серверу - Нгихс (страница изменена) - загружаем новую - ответ 200

2. Запрос к серверу - Нгихс (не изменена) - загружаем из кеша - ответ 304.

Как оно наверное работает в реальности

1. Запрос к серверу - Нгихс (страница изменена) - загружаем новую - ответ 200

2. Запрос к серверу - Нгихс (не изменена) - загружаем из кеша - ответ 200.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий