ПРОЕКТЫ 


  АРХИВ 


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]

Странное поведение proxy_cache_ bypass


  • To: nginx-ru@xxxxxxxxx
  • Subject: Странное поведение proxy_cache_ bypass
  • From: "Oleksandr V. Typlyns'kyi" <wangsamp@xxxxxxxxx>
  • Date: Tue, 28 Sep 2010 21:12:15 +0300 (EEST)

Использую кеширование в nginx 0.8.50 перед apache.
В проксируемом location следующее:
 proxy_pass http://apache;
 proxy_cache CACHE;
 proxy_cache_key $host$uri$is_args$args$cookie_lang;
 proxy_cache_min_uses 1;
 proxy_cache_valid 200 301 1m;
 proxy_cache_valid 404 30s;
 proxy_cache_use_stale updating error timeout invalid_header http_500 http_502 
http_503 http_504;
 proxy_no_cache $arg_WPMODE;
 proxy_cache_bypass $arg_WPMODE $http_pragma;
 proxy_ignore_headers Set-Cookie;
 proxy_hide_header Set-Cookie;
 proxy_pass_header Cookie;
 proxy_set_header Accept-Encoding "";
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_hide_header Vary;
 gzip on;

В proxy_no_cache $http_pragma не указан для обновления кеша.

Делаю первый запрос:
wget -d http://domain.tld/someurl

---request begin---
GET /someurl HTTP/1.0
User-Agent: Wget/1.12
Accept: */*
Host: domain.tld
Connection: Keep-Alive

---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 28 Sep 2010 17:34:17 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
Vary: Accept-Encoding

Абсолютно корректно отвечает и сохраняет:

KEY: domain.tld/someurl
HTTP/1.1 200 OK
Date: Tue, 28 Sep 2010 17:34:17 GMT
Server: Apache/2
X-Accel-Expires: 300
Set-Cookie: lang=ru; expires=Sat, 27-Nov-2010 17:34:17 GMT; path=/; 
domain=domain.tld
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=windows-1251


Посылаю запрос для обновления:
wget -d --header "Pragma: no-cache" http://domain.tld/someurl

---request begin---
GET /someurl HTTP/1.0
User-Agent: Wget/1.12
Accept: */*
Host: domain.tld
Connection: Keep-Alive
Pragma: no-cache

---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 28 Sep 2010 17:35:57 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
Vary: Accept-Encoding


Сам ответ правильный, а вот в файле кеша - "битый" заголовок:

KEY: domain.tld/someurl
Server: Apache/2
X-Accel-Expires: 300
Set-Cookie: lang=ru; expires=Sat, 27-Nov-2010 17:35:57 GMT; path=/; 
domain=domain.tld
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=windows-1251


Последующие запросы к кешу:
wget -d http://domain.tld/someurl

---request begin---
GET /someurl HTTP/1.0
User-Agent: Wget/1.12
Accept: */*
Host: domain.tld
Connection: Keep-Alive

---response begin---
---response end---
200 Заголовки отсутствуют, подразумевается HTTP/0.9
Длина: нет информации

Помогите понять это я нечто делаю не так или сохранение в кеш при 
proxy_cache_bypass?

-- 
WNGS-RIPE

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.