ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mod_proxy If-Modified-Since apache



Здравствуйте.
Может, кто подскажет, можно ли такое реализовать на Nginx?

nginx version: nginx/0.7.62 + mod_proxy

Структура:
backend (apache)____________Nginx____________________Client
10.0.0.67<---------------->10.0.0.68 192.168.0.2 <-------------> 192.168.0.5

Nginx server<------------------Client
GET /test.test

backend <------------------ Nginx server
GET /test.test

backend ------------------> Nginx server

200 OK
Cache-Control: max-age=120
Connection: close
Date: Thu, 19 Nov 2009 09:51:24 GMT
Server: Apache/1.3.37 (Unix) mod_plsql/3.0.9.8.5d
Content-Length: 962
Content-Type: text/html; charset=windows-1251
Expires: Thu, 19 Nov 2009 09:53:27 GMT
Last-Modified: Wed, 18 Nov 2009 14:04:31 GMT
Client-Date: Thu, 19 Nov 2009 09:51:24 GMT
Client-Peer: 10.0.0.67:80
Client-Response-Num: 1

Nginx server------------------>Client

200 OK
Cache-Control: max-age=120
Connection: close
Date: Thu, 19 Nov 2009 09:51:24 GMT
Server: Apache/1.3.37 (Unix) mod_plsql/3.0.9.8.5d
Content-Length: 958
Content-Type: text/html; charset=windows-1251
Expires: Thu, 19 Nov 2009 09:53:24 GMT
Last-Modified: Wed, 18 Nov 2009 14:04:31 GMT
Client-Date: Thu, 19 Nov 2009 09:51:24 GMT
Client-Peer: 192.168.0.2:80
Client-Response-Num: 1


Пока не превышено время Expires: Thu, 19 Nov 2009 09:38:53 GMT
nginx отдает эту станицу из кеша. По истечению, конструкция повторяется.

А можно ли сделать немного другую модель?
Первая часть та же, но, после истечения времени жизни страницы:
Не удаляя файла из кеша!

Nginx<------------------Client
GET /test.test


backend <------------------ Nginx server
GET /test.test

Посылаем тот же запрос, но с заголовком
Last-Modified=If-Modified-Since
В данном случае
If-Modified-Since: Wed, 18 Nov 2009 14:04:31 GMT

backend ------------------> Nginx server
304 Not Modified
Cache-Control: max-age=120
Connection: close
Date: Thu, 19 Nov 2009 09:53:32 GMT
Server: Apache/1.3.37 (Unix) mod_plsql/3.0.9.8.5d
Content-Type: text/html; charset=windows-1251
Expires: Thu, 19 Nov 2009 09:55:32 GMT
Last-Modified: Wed, 18 Nov 2009 14:04:31 GMT
Client-Date: Thu, 19 Nov 2009 09:53:32 GMT
Client-Peer: 10.0.0.67:80
Client-Response-Num: 1

Nginx server------------------>Client

200 OK
Cache-Control: max-age=120
Connection: close
Date: Thu, 19 Nov 2009 09:53:32 GMT
Server: Apache/1.3.37 (Unix) mod_plsql/3.0.9.8.5d
Content-Length: 958
Content-Type: text/html; charset=windows-1251
Expires: Thu, 19 Nov 2009 09:55:32 GMT
Last-Modified: Wed, 18 Nov 2009 14:04:31 GMT
Client-Date: Thu, 19 Nov 2009 09:53:32 GMT
Client-Peer: 192.168.0.2:80
Client-Response-Num: 1

и в заголовке закешированного файла, надо заменить заголовок Expires:
На новый
Expires: Thu, 19 Nov 2009 09:55:32 GMT
Что бы продолжать отдавать закешированный контент, а не генерить страницу 
заново.
А чистку кеша, осуществлять только по приближении к ограничению по месту, тех 
файлов, где давно просрочен Expires.

C Уважением, Константин.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,24145,24145#msg-24145




 




Copyright © Lexa Software, 1996-2009.