proxy_cache и proxy_next_upstream http_404

Dmitry Sukhodoyev raven428 at gmail.com
Thu Aug 13 13:03:43 MSD 2009


есть вот такой конфиг. запрашиваем с nginx файл, который есть на apa01 и 
которого нету на apa02. nginx тыкается в apa02, получает 404 и забирает 
файл с apa01. так постоянно, сначала тыкается во второй бэкэнд, а потом 
скачивает с первого и отдаёт. если файл разложить по обоим бэкэндам, то 
он кешируется и отдаётся уже из кеша.

как правильно сделать, чтобы кешировал файлы, которые есть на одном из 
бэкэндов в апстриме и которые нету на остальных?

=== кусь ===
 upstream test-apa {
  server apa01:9003 weight=1;
  server apa02:9003 weight=2;
 }
 proxy_cache_key $scheme$proxy_host$request_uri;
 proxy_cache_min_uses 1;
 proxy_cache_valid 1d;
 proxy_cache_path /var/tmp/nginx/cache/test levels=1:2 
keys_zone=test:20m inactive=1d max_size=1g;
 server {
  listen 1.2.3.4:80 <http://1.2.3.4:80>;
  proxy_next_upstream error timeout http_404 http_500 http_503;
  proxy_set_header Connection close;
  proxy_set_header X-Forwarded-For $remote_addr;
  server_name test.domain.ru <http://test.domain.ru>;
  proxy_set_header Host test.domain.ru:9003 <http://test.domain.ru:9003>;
  proxy_redirect http://test.domain.ru:9003/ http://test.domain.ru/;
  location ~* "\.php$" {
   proxy_pass http://test-apa;
  }
  location / {
   proxy_cache test;
   proxy_pass http://test-apa;
  }
 }
=== кусь ===

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090813/7761df27/attachment.html>


More information about the nginx-ru mailing list