Как создать зеркало

Последнее время многие спрашивают, как создать зеркало и что для этого нужно.
Моя позиция - зеркала это хорошо, но я сам их делать не буду. Максимум помогу добрым советом. Такой сайт не получается поднять и забыть, за ним надо присматривать постоянно. У меня на это времени нет. Так что рассчитывайте на свои силы.
1. Хостинг.
LAMP (Linux Apache2 MySQL5 PHP5), 500 гиг места.
Для начала - любой, хоть бесплатный. Серьёзной нагрузки не выдержит, но для попробовать-поиграться хватит. Желающим что-то улучшить в Либрусеке крайне желательно начинать с запуска зеркала, чтоб было на чём проверять свои патчи.
Имейте в виду, для публичного зеркала хостинг должен быть абузоустойчивый, иначе жить ему не больше месяца. Можно разбить - абузоустойчивый дешёвый впс с nginx, и любой бекенд, хоть шаред, про который кроме фронта никто не знает.
2. Друпал 6. Берётся на http://drupal.org, руссификация на http://drupal.ru.
Если реализовать 1. и 2. не получилось, то дальше можно не читать. Это такой минимальный порог вхождения.

3. Модуль librusec. Подробности установки - http://github.com/larin/librusec/blob/master/README.
Можно взять с github.com, можно с http://lib.rus.ec/sql.librusec.zip. Требует определённого изучения глазами и правки руками.
В основном librusec.module, stat.inc, начало librusec.inc, libBookDownload в book.inc и mass.inc.
4. Если планируется хоть какая-то нагрузка, хотя бы и от ботов поисковиков, то крайне желательно:
4.1 http://drupal.org/project/boost
4.2 APC, включить кэш в мускуле, memcached, nginx. Всё это требует выделенного сервера или VPS.
4.3 Можно разнести apache, nginx, memcached, mysql на разные сервера. В пределе каждый из них на несколько.

Задавайте вопросы, буду стараться довести этот текст до полной ясности.

Комментарии

Цитата:
LAMP (Linux Apache2 MySQL5 PHP5), 500 гиг места.

не многовато места надо? поставил лайти. без акселератора, только кэш. тестирую. ip 217.30.248.157

Когда на Либрусеке был один диск на 500, чистить его приходилось регулярно.
Сейчас полтора тера, занято заметно больше половины.

эээ вижу запросы... надо host передавать... проще всего в файл WINDOWS\system32\drivers\etc\hosts
добавить (естественно на время теста)
217.30.248.157 lib.rus.ec
217.30.248.157 lib2.rus.ec

и обращаться по имени lib.rus.ec . на lib2.rus.ec насколько я понял хранятся сами книги

Ну и что? На первой странице голая "пустая" страница, на остальных (предположим, что они есть, а их...) - 404...

сервер проверяет Host: читайте выше что делать.

Ах, он оба имени использует, а я думал любое из... Сейчас протестим...

опс.. мой сервер похоже блочит настоящий lib.rus.ec ;) первую страницу отдает на остальное 404

вот именно ;)

А может быть изменишь имя хоста, на какое отзывается? Пусть будет, например, libnew.rus.ec или libnew2.rus.ec, их и прописываем в хост... Меньше проблем будет...

без хозяина несмогу... хост передается напрямую. к стати нашел ошибку (опечатку) в конфиге теперь 404 не выдает.

Теперь подмененный lib.rus.ec у тебя вовсе не отзывается, а подмененный lib2.rus.ec дает начальную страницу со ссылкой на lib.rus.ec.

всетаки походу блочит изза количиства соединений... уже 3 ip меняю на исходящие соединения.

Посоветуйте бесплатный хостинг чтобы попробовать на вкус ето дело

Таких не бывает, но есть такие у которых 30 дней money back guarantee - вот их и ищите. Обычно смотрите на простенькие VPS с линуксом.

Цитата:
Обычно смотрите на простенькие VPS с линуксом.

впс с 500Г места - это очень дорого.
Или шаред, или дедик.

В порядке бреда: а может ли сработать такая конструкция:
Frontend с MySQL и базаданой на относительно быстром, но маленьком VPS, а backend с собственно книжками - на недорогом, медленном но большом shared?

Не уверен. Много можете вспомнить хостингов, которые дают ~150gb (неплохо бы сейчас), которые в будущем можно еще расширить (либрусек-то растет). Ну и хорошо: процессор вы шареду сильно грузить не будете, но при должной популярности начнете привышать разумные планки по памяти и трафику. Шаред обычно вещь куда менее рентабельная, чем впс, так что вероятность того что вас попрут больше.

>Много можете вспомнить хостингов, которые дают ~150gb

На шаредах место, как правило, не проблема:
http://www.powweb.com/powweb/hosting.bml
Disk Space (Raid Storage) UNLIMITED
Data Transfer / Bandwidth UNLIMITED
$4.88 / month

Мой микросайтик на них уж много лет живёт. Сервис, конечно, дерьмовенький, и абюзостойкость нулевая, но... а если файлы не напрямую с шареда, а через франтенд отдавать - абюзостойкость шаред бекенда повысится... правда, траффик франтенда тоже повысится...

Ну и скрипты, кстати, слегка переписать придется. Ибо книги у вас будут где-то там, а запросы "сделайте мне html/txt" видимо будут валиться на основной сервер. Впрочем, тут большой простор для фантазии и все вполне реализуемо.

Ничего переписывать не надо. На фронте nginx, можно кэшируюший. Все скрипты и книги на основном сервере, но про него никто не знает.

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

да.

Может.

Может кто знает, то ткните пальцем, а где взять содержимое "i" и "img"?

Цитата:
Может кто знает, то ткните пальцем, а где взять содержимое "i" и "img"?

i/ генерится автоматически при парсинге книги.
img/ проще всего стянуть прям с Либрусека:
for i in s1.gif s2.gif zamok.gif znak1.gif znak5.gif znak.gif; do wget lib.rus.ec/img/$i;done

Илья, открой пожалуйста для скачивания/синхронизации sql.zip с биографиями авторов. Я обсуждал этот вопрос с Buriy, но его уже несколько дней в Сети нету...
Как-то пусто и неуютно зеркало без них смотрится, а ведь люди должны знать своих героев )

P.S. Первый раз пишу в комментах, так что пользуясь случаем - спасибо за библиотеку )

Беда в том, что такой таблицы не существует.
А отдавать всю node_revisions я пока морально не готов.
Надо придумать какой хитрый экспорт, или вообще всё переделать.

Нет проблем, можешь дать мне кусочек файла с примерной структурой, чтобы я мог написать конвертер для этих данных? Вот и будет хитрый экспорт )

адрес: al420(гав-кусь-ням)tut.by

Какого файла, ты о чём? Всё в базе.
http://github.com/larin/librusec/blob/master/librusec.sql

В случае удаления файла на lib.rus.ec будет ли удалён автоматически файл на зеркале?

Цитата:
В случае удаления файла на lib.rus.ec будет ли удалён автоматически файл на зеркале?

Да.
Если быть точным, файлы не удаляются никогда, они помечаются как удалённые в базе, но в любой момент могут быть востановлены любым пользователем.

Извините, я слегка не в теме, но не подойти ли к вопросу глобально: cloud + хранилище типа s3? Вопросы типа DDoS это решает. Остается легальный вопрос. К интерфейсу на cloud (appengine? м\б что-то еще?) претензий формально нет, т.к. данные на нем не хранятся, а вот хранилище надо подобрать с умом.

Как считаете?

Беда в ценах. Я смотрел cloud storage, но цены у них запредельные.

Насколько это дороже теперешних расходов на "обычный" хостинг? Я бы согласился на рекламу в обмен на стабильную работу библиотеки.

И мне кажется, что вопросе с деньгами можно было бы решить, но сначала неплохо бы узнать решение легальных вопросов - s3, по-моему, абузонеустойчив.

Добрый день,

Есть несколько пожеланий по поводу "зеркал":
1. Можно ли выложить таблицу libpolka, ведь как раз в ней лежат комментарии к книгам? Хотя самый лучший вариант - разделить каменты юзеров и полку (sql view?)
2. В идеале, было бы сделать синхру по rsync (если такое возможно), а то каждый раз качать все таблицы целиком - это неэффектинво.

Если возникнут какие-то вопросы - можно обсудить их в личке (мы этот код можем сделать и протестировать сами, главное его потом выложить :) ).

--
"Директор катка" (lib.ololo.cc)

У нас с Вами очень похожие запросы :) Написал в личку.

Нужен только машиночитаемый текст (без djvu,pdf). Реально нужно пару гиг текста для машинного анализа. Худ. лит. какая не будь подошла бы.

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

а если дома сделать по такому рецепту , чтоб не прикопались https://www.torproject.org/docs/tor-hidden-service.html.ru , подойдет такой вариант?

Есть ли планы отдавать на публику дампы таблиц libpolka / libpolkarate ---- насколько я понял по структуре базы, именно в них находятся отзывы и рейтинги пользователей о книгах?

А когда это поменялось bookid -> bid и т.п.? Я инфу пропустил или ее не было?
Благо, что я скрипт обновления баз написал под параноидное настроение...

X