LINUX.ORG.RU
ФорумAdmin

Проксисервер с зеркалированием


0

0

Задача: сделать проксисервер так, чтобы
скачанные файлы складывались заданным образом
(например, в зависимости от URL) на локальный диск
сервера. Опционально: если файл существует, отдавать
его с локального диска; обновлять локальную копию.

☆☆

> Задача: сделать проксисервер так, чтобы

> скачанные файлы складывались заданным образом

> (например, в зависимости от URL) на локальный диск

> сервера. Опционально: если файл существует, отдавать

> его с локального диска; обновлять локальную копию.

тот же SQUID чем не устраивает?

rap-kasta
()

посмотри wwwoffle. Там есть "оффлайновый" режим работы, "если файл существует, отдавать его с локального диска; обновлять локальную копию"

В squid, посмотри offline mode. Раздражает, что в offline mode его надо ручками переводить, специально.

>чтобы >скачанные файлы складывались заданным образом >(например, в зависимости от URL) на локальный диск >сервера

посмотри squidpurge (ЕМНИП) для squid. Правда, это немного не то -- файл вытаскивается из кеша (то ли копируется, то ли удаляется из кеша), а нам надо чтобы параллельно складывалось в кеш.

По-моему, надо писать свой форк сквида, с нормальным "оффлайновым режимом".

Чтобы:

1. файлы ложились не несколько файлов в один в контейнер вроде /var/cache/squid/00/00/00000078. А каждый в свой файл вида /.../GUID-of-file (хеш от содержимого файла, как организованы блобы в git)

2. Изменить алгоритм работы прокси-сервера. Сейчас, считается что мы постоянно в онлайне, если не ресолвится хост, показывается сообщение об ошибке. А надо чтобы прокси переключался в оффлайновый режим (с уведомлением) и показывал "предыдущую успешно скешированную версию".

3. Возможно, хранить для одного URL архив изменений странички, заданной глубиной. Чтобы можно было посмотреть в кеше прокси, какой страничка была год назад. То есть, если страничка есть в кеше, и надо обновить версию в кеше, не тупо затиралась страница целиком, а делалась "новая версия" странички в кеше, если количество версий <= "макс. глубины архива". Или, как в кольцевом буфере, затиралась самая старая, и сохранялась новая версия (то есть, для любой страницы существует максимум "макс. глубина архива" версий)

4. Был поиск по содержимому, теги, категории, классификация -- автоматом. То есть, прокси не просто тупо хранит контент, но и подписывает его метаданными, по которым потом работают запросы для поиска(по метаданным или по индексам содержимого).

anonymous
()

#!/bin/bash

VERBOSE=0
TMPDIR=/tmp
ELIB=/storage/elib
ARXIV=$ELIB/journal/arXiv/

/usr/bin/squidpurge -c /etc/squid/squid.conf -C "$TMPDIR" -e "arxiv\.org\/pdf\/" || exit 1
find "$TMPDIR"/*arxiv.org -type f > "$TMPDIR/cache_list" || exit 1
for f in $(cat "$TMPDIR/cache_list"); do
        elib_f=$(echo "$f" | sed "s,^.*arxiv\.org/pdf/,$ARXIV,; s,/\([0-9][0-9]\),/\1/\1,").pdf
        if [ ! -f "$elib_f" ]; then
                mkdir -p $(dirname $elib_f) || exit 1
                echo "$f --> $elib_f"
                cp   "$f"   "$elib_f" || exit 1
        fi
done
rm -rf "$TMPDIR"/*arxiv.org
rm -f  "$TMPDIR"/cache_list


exit 0

ip1981 ☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.