Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
open_file_cache + proxy_store
Добрый день,
есть такая схема.
1-й nginx живёт на одном сервере, 2-й на другом.
Юзеры приходят за файлами на 1-й сервер и им отдаёт их 1-й nginx вот с такими
настройками:
server {
listen 80;
server_name _;
location / {
root /var/lib/nginx/tmp/static.blabla.ru_proxy_store;
# open_file_cache max=32768 inactive=45s;
# open_file_cache_min_uses 4;
# open_file_cache_valid 15;
# open_file_cache_errors on;
open_file_cache_errors off;
error_page 404 = /fetch$uri;
}
location /fetch {
internal;
proxy_pass http://192.168.10.3/static.blabla.ru/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /var/lib/nginx/tmp/static.blabla.ru_tmp;
alias /var/lib/nginx/tmp/static.blabla.ru_proxy_store;
}
}
Есть 2-й сервер с такими вот настройками nginx:
server {
listen 80;
server_name _;
root /local/www;
location /static.blabla.ru {
alias /local/www/static.blabla.ru/htdocs;
}
}
Логика простая: если у 1-го nginx'а ничего нет, то он идёт на 2-й, где есть всё
что нужно.
Но, хотелось бы усложнить логику так:
- если к нам пришли на 1-й nginx за файлом и его у нас нет, то сходить на 2-й
nginx и если там этого файла тоже нет, то закешировать ошибку, что файла нигде
нет и в течение open_file_cache_valid не отбращаться на c 1-го nginx на 2-й.
На самом деле машин с nginx'ом 1-го вида довольно много, а машин с nginx 2-го
вида очень мало. Поэтому, если вдруг случится так, что будет на некоторой
странице сайта ссылки на несуществующий файл, то машины 2-го вида будут
прилично загружены обращениями к несуществующим файлам. Хочется избежать этого.
Подскажите, как этого добиться?
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|