Welcome! Log In Create A New Profile

Advanced

Проблемы с кэшированием 404 ответа с пустым телом

Nickolay Krylov
December 08, 2009 07:40PM
Здравствуйте, Nginx-ru.

Сегодня построил схему в которой появилась проблема.

Идея такая: для каждого поддомена создается sitemap.xml средствами php
и кэшируется с помощью proxy_cache.

В некоторых поддоменах индексировать нечего, поэтому выдаем 404,
которые тоже кэшируются.

Кусок конфига
http {
proxy_cache_path /js/jA/web/sitemaps levels=1:2 keys_zone=sitemaps:32m inactive=3600 max_size=10g;
....
server {
listen xx.yy.zz.bb;
name domain.ru *.domain.ru;
....
location = /sitemap.php { rewrite ^.*$ / redirect; }
location = /sitemap.xml {
proxy_temp_path /js/jA/web/tmp 1 2;

error_log /js/jB/tmp/sitemaps.log debug;

proxy_cache sitemaps;
proxy_cache_valid 200 301 302 404 403 10m;
proxy_cache_key "$host";

proxy_pass http://RRBE;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-BSNETMARK $bs_netmark;

expires 10m;
add_header Pragma public;

rewrite ^/sitemap.xml /sitemap.php break;

}
}
}

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

jd# telnet domain.ru 80
Trying xx.yy.zz.bb...
Connected to domain.ru.
Escape character is '^]'.
GET /sitemap.xml HTTP/1.1
Host: veo.domain.ru

HTTP/1.1 404 Page Not Found
Server: nginx
Date: Wed, 09 Dec 2009 00:28:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive

0

GET /sitemap.xml HTTP/1.1
Host: veo.domain.ru
- здесь висим минуту

Connection closed by foreign host.



Если в ответе есть тело, проблема не проявляется.

nginx -V
nginx version: nginx/0.8.20
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib'
--conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx-error.log --user=www --group=www --with-debug --with-file-aio
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-log-path=/var/log/nginx-access.log
--with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_perl_module
--with-http_random_index_module --with-http_realip_module --with-http_stub_status_module --with-pcre

Отладочные логи приготовил.

--
С уважением,
Nickolay Krylov mailto:nk@antenne.org.ru


_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Проблемы с кэшированием 404 ответа с пустым телом

Nickolay Krylov December 08, 2009 07:40PM

Re: Проблемы с кэшированием 404 ответа с пустым телом

Maxim Dounin December 09, 2009 04:50AM

Re[2]: Проблемы с кэшированием 404 ответа с пустым телом

Nickolay Krylov December 09, 2009 06:34AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 109
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