<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
есть вот такой конфиг. запрашиваем с nginx файл, который есть на apa01
и которого нету на apa02. nginx тыкается в apa02, получает 404 и
забирает файл с apa01. так постоянно, сначала тыкается во второй
бэкэнд, а потом скачивает с первого и отдаёт. если файл разложить по
обоим бэкэндам, то он кешируется и отдаётся уже из кеша.<br>
<br>
как правильно сделать, чтобы кешировал файлы, которые есть на одном из
бэкэндов в апстриме и которые нету на остальных?<br>
<br>
=== кусь ===<br>
 upstream test-apa {<br>
  server apa01:9003 weight=1;<br>
  server apa02:9003 weight=2;<br>
 }<br>
 proxy_cache_key $scheme$proxy_host$request_uri;<br>
 proxy_cache_min_uses 1;<br>
 proxy_cache_valid 1d;<br>
 proxy_cache_path /var/tmp/nginx/cache/test levels=1:2
keys_zone=test:20m inactive=1d max_size=1g;<br>
 server {<br>
  listen <a href="http://1.2.3.4:80">1.2.3.4:80</a>;<br>
  proxy_next_upstream error timeout http_404 http_500 http_503;<br>
  proxy_set_header Connection close;<br>
  proxy_set_header X-Forwarded-For $remote_addr;<br>
  server_name <a href="http://test.domain.ru">test.domain.ru</a>;<br>
  proxy_set_header Host <a href="http://test.domain.ru:9003">test.domain.ru:9003</a>;<br>
  proxy_redirect <a href="http://test.domain.ru:9003/">http://test.domain.ru:9003/</a>
<a href="http://test.domain.ru/">http://test.domain.ru/</a>;<br>
  location ~* "\.php$" {<br>
   proxy_pass <a href="http://test-apa">http://test-apa</a>;<br>
  }<br>
  location / {<br>
   proxy_cache test;<br>
   proxy_pass <a href="http://test-apa">http://test-apa</a>;<br>
  }<br>
 }<br>
=== кусь ===<br>
<br>
</body>
</html>