Oleksandr V. Typlyns'kyi
September 28, 2010 02:14PM
Использую кеширование в 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@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Странное поведение proxy_cache_bypass

Oleksandr V. Typlyns'kyi September 28, 2010 02:14PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 125
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready