location /images/ {
try_files $uri $uri/ @get_old_image;
root /home/www/public_html;
}
location @get_old_image {
internal;
proxy_pass http://site.ru;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /home/www/temp;
root /home/www/public_html;
}
Копирование файла с сервера В на сервер А при отсутствии на А
Поделитесь пожалуйста ссылкой на следующею тему.
Есть два сервера, скажем А и В.
А - принимает трафик.
В - хранит статические файлы.
Необходимо проверять наличие файла на А и при его отсутствии отдавать его с В, но при этом необходимо скопировать на А.
С проверкой наличия файла и проксированием всё понятна. А вот как скопировать файл и желательно в один поток (т.е. копировать и отдавать пользователю одновременно - один запрос на В к файлу)
Есть идеи?
UPD: Небольшое уточнение: нужно именно копирование, кеш не подходит.
Пока в голове следующая реализация: Смотрим наличие на А, если нет то перенаправляем на В и пишем в лог. Периодически читаем лог и подтягиваем файлы с В на А.
Что мешает постоянно редиректить на сервер B, вообще исключив проверку наличия файла на сервере А?
Время загрузки.
На который вопрос был дан ответ?
А по поводу первого, как определить какой нужно файл подгрузить?
Цитата: clgs
На второй.
А по поводу первого, как определить какой нужно файл подгрузить?
А по поводу первого, как определить какой нужно файл подгрузить?
Это чьи слова?
Тут говорится о том что приходит запрос на файл, nginx проверяет наличие на А, при отсутствии делается проксирование на В. А теперь тот самый вопрос, если не использовать логи, как узнать какой файл был запрошен, чтоб его в последствии скопировать с А на В.
Если сервер, то надо покапаться в настройках модулях rewrite и построить условие, чтобы запрос на несуществующий файл (определённый по маске и каталогу), был переправлен на другой хост. Не знаю, как тебе лучше будет это сделать: можешь покапаться в модулях nginx и поискать проксирование, а можешь написать скрипт, которому будет передаваться имя файла, а он уже будет подтягивать его с хоста B и отдавать.
Если скрипт (nginx не проверяет, существуют ли файлы, а передаёт все запросы скрипту, в котором реализован шаблон контроллера страниц), то он может проверять наличие файла, сразу же его подтягивать и отдавать, как написано в конце первого пункта.