Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Копирование файла с сервера В на сервер А при отсутствии на А

714
19 июня 2013 года
clgs
226 / / 29.10.2008
Добрый день.
Поделитесь пожалуйста ссылкой на следующею тему.
Есть два сервера, скажем А и В.
А - принимает трафик.
В - хранит статические файлы.
Необходимо проверять наличие файла на А и при его отсутствии отдавать его с В, но при этом необходимо скопировать на А.
С проверкой наличия файла и проксированием всё понятна. А вот как скопировать файл и желательно в один поток (т.е. копировать и отдавать пользователю одновременно - один запрос на В к файлу)
Есть идеи?

UPD: Небольшое уточнение: нужно именно копирование, кеш не подходит.
Пока в голове следующая реализация: Смотрим наличие на А, если нет то перенаправляем на В и пишем в лог. Периодически читаем лог и подтягиваем файлы с В на А.
714
20 июня 2013 года
clgs
226 / / 29.10.2008
Код:
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;
}
414
19 июня 2013 года
CassandraDied
763 / / 24.05.2012
Что мешает подтягивать нужный файл без записи и чтения лога?
Что мешает постоянно редиректить на сервер B, вообще исключив проверку наличия файла на сервере А?
714
20 июня 2013 года
clgs
226 / / 29.10.2008
Время загрузки.
414
20 июня 2013 года
CassandraDied
763 / / 24.05.2012
На который вопрос был дан ответ?
714
20 июня 2013 года
clgs
226 / / 29.10.2008
На второй.
А по поводу первого, как определить какой нужно файл подгрузить?
414
20 июня 2013 года
CassandraDied
763 / / 24.05.2012
Цитата: clgs
На второй.
А по поводу первого, как определить какой нужно файл подгрузить?


Это чьи слова?

Цитата:
С проверкой наличия файла и проксированием всё понятна

714
20 июня 2013 года
clgs
226 / / 29.10.2008
Тут говорится о том что приходит запрос на файл, nginx проверяет наличие на А, при отсутствии делается проксирование на В. А теперь тот самый вопрос, если не использовать логи, как узнать какой файл был запрошен, чтоб его в последствии скопировать с А на В.

Нашел proxy_store, сейчас проверяю подходит ил он нам.
414
20 июня 2013 года
CassandraDied
763 / / 24.05.2012
Логи кто будет использовать (читать/писать) — сервер или скрипт?
Если сервер, то надо покапаться в настройках модулях rewrite и построить условие, чтобы запрос на несуществующий файл (определённый по маске и каталогу), был переправлен на другой хост. Не знаю, как тебе лучше будет это сделать: можешь покапаться в модулях nginx и поискать проксирование, а можешь написать скрипт, которому будет передаваться имя файла, а он уже будет подтягивать его с хоста B и отдавать.
Если скрипт (nginx не проверяет, существуют ли файлы, а передаёт все запросы скрипту, в котором реализован шаблон контроллера страниц), то он может проверять наличие файла, сразу же его подтягивать и отдавать, как написано в конце первого пункта.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог