Настройка HSDN Mirroring Cacher

Разработка своих веб-приложений и страничек

Настройка HSDN Mirroring Cacher

Сообщение Rostov114 » 01 ноя 2008, 14:11

Внимание! Статья в проверке. Есть опасность того что класс не будет работать на TopServer!
Настройка HSDN Mirroring Cacher
Офф. сайт: hsdn.org
Версия статьи - 1.0.0
Версия HSDN Mirroring Cacher - 2.1.3 RC1
Описание:
dev.hsdn.org писал(а): Данный класс позволяет создать зеркало любого удаленного ресурса на локальном сервере. Созданное зеркало по сути является прокси сервером, который будет непосредственно взаимодействовать с удаленным хостом. Благодаря системе встроенного кэширования страниц и картинок, нет нужды многократно загружать одну и ту же страницу с сервера.


1. Получаем скрипт
Скрипт можно скачать с официального сайта.
Зеркал я думаю создавать не надо. Ибо у HSDN самые стабильные в ФОСе сервера.

2. Настройка
1. Скопируйте и сохраните полученный фаил под именем mcacher.class.php
2. Создайте директорию `cache' и установите на нее права `0777' (подробнее читайте описание команды `chmod')(действие не обязательно для Windows серверов. Ибо скрипт может создать сам дерикторию).
3. Создайте файл с названием `cacher.php' и поместите в него скрипт вызова данного класса(смотри п.3).
4. Настройте необходимые переменные, указав адрес сайта, путь к директории `cache' и т.д.
5. Создайте и разместите в корневом каталоге файл `.htaccess' со следующим содержанием:
Код: Выделить всёРазвернуть
DirectoryIndex cacher.php
ErrorDocument 404 /cacher.php
Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ cacher.php


3. Примеры использования

Для кэширования одного сайта:
Код: Выделить всёРазвернуть
<?php
include 'mcacher.class.php'; // Подключение класса

$mcp = new Cacher; // Определение класса
$mcp->cache_dir = 'cache'; // Директория хранения файлов кэша
$mcp->cache_time = 24; // Период хранения кэша в часах (0 -- не кэшировать)

// Пути, для которых следует применить индивидуальный период хранения кэша
$mcp->custom_cache = array
(
    "^/news" => 0, // Не кэшировать страницу /news
    ".dhtml$" => 4  // Обновлять кэш для файлов .dhtml раз в 4 часа
);

// Ограничение доступа к различным ресурсам, страницам или файлам
$mcp->forbidden = array
(
    "^/badpage.php", // Закрыть доступ к странице /badpage.php
    ".mp3$" // Закрыть доступ ко всем файлам .mp3
);

$mcp->connect = 'http://www.hsdn.org'; // Адрес подключения

// Автозамена реального имени сайта на имя сайта зеркала в заголовках HTTP
$mcp->head_replace = array
(
    'www.hsdn.org' => $_SERVER['SERVER_NAME'] // Для заголовков, пр. Location
);

// Автозамена реального имени сайта на имя сайта зеркала в теле страницы,
// а также в ссылках на страницах
$mcp->body_replace = array
(
    'http://www.hsdn.org' => '' // Заменяем ссылки вида:
                                // href="http://www.hsdn.org/link" на href="/link"
);

$mcp->run_cache(); // Запуск класса
?>


Для кэширования нескольких сайтов:

Код: Выделить всёРазвернуть
<?php
include 'mcacher.class.php'; // Подключение класса

$mcp = new Cacher; // Определение класса

$path = $mcp->uri_array(); // Получение аргументов URI

// Выбор сайта по первому аргументу URI
switch($path[1])
{
    // Первый сайт (доступен как: http://my-cache.ru/www.hsdn.org/)
    case 'www.hsdn.org':
        $mcp->cache_dir = 'cache/www.hsdn.org'; // Директория хранения файлов кэша
        $mcp->cache_time = 24; // Период хранения кэша в часах (0 -- не кэшировать)

        $mcp->connect = 'http://www.hsdn.org'; // Адрес подключения
        $mcp->path = '/www.hsdn.org'; // Рабочий путь класса

        // Возможно, придется заменить некоторые ссылки
        $mcp->body_replace = array
        (
            '="/' => '="'.$mcp->path.'/', // Заменяем ссылки вида:
                                          // href="/link" на href="/www.hsdn.org/link"
        );

        // ... ниже можно определить остальные переменные, как в первом примере
        break;

    // Второй сайт (доступен как: http://my-cache.ru/www.ya.ru/)
    case 'www.ya.ru':
        $mcp->cache_dir = 'cache/www.ya.ru'; // Директория хранения файлов кэша
        $mcp->cache_time = 0; // Период хранения кэша в часах (0 -- не кэшировать)

        $mcp->connect = 'http://www.ya.ru'; // Адрес подключения
        $mcp->path = '/www.ya.ru'; // Рабочий путь класса

        // Возможно, придется заменить некоторые ссылки
        $mcp->body_replace = array
        (
            '="/' => '="'.$mcp->path.'/', // Заменяем ссылки вида:
                                          // href="/link" на href="/www.ya.ru/link"
        );

        // ... ниже можно определить остальные переменные, как в первом примере
        break;

    // Сайт по-умолчанию (доступен как: http://my-cache.ru/)
    default:
        $mcp->cache_dir = 'cache'; // Директория хранения файлов кэша
        $mcp->cache_time = 0; // Период хранения кэша в часах (0 -- не кэшировать)

        $mcp->connect = 'http://www.mail.ru'; // Адрес подключения

        // ... ниже можно определить остальные переменные, как в первом примере
        break;
}

$mcp->run_cache(); // Запуск класса
?>


Если какие не понятки по скрипту есть то можете также найти нужное в комментариях класса.
Или пишите сюда.

:wink: Удачи.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3198
Зарегистрирован: 18 окт 2007, 02:21

Re: Настройка HSDN Mirroring Cacher

Сообщение On-line » 01 ноя 2008, 16:00

:oops: Если честно, то не че не понял.... :Search:
Это не то, что мне надо...
Аватара пользователя
On-line
Активный участник
 
Сообщения: 1083
Зарегистрирован: 31 окт 2008, 23:54
Домен: http://vbalashove.ru

Re: Настройка HSDN Mirroring Cacher

Сообщение Костик » 01 ноя 2008, 16:06

там в скрипте всё это написано, я не знаю зачем всё это написано здесь :unknown:
FreeBSD 9.2 and Fedora 18 user
Аватара пользователя
Костик
Активный участник
 
Сообщения: 1944
Зарегистрирован: 03 сен 2007, 02:15

Re: Настройка HSDN Mirroring Cacher

Сообщение Rostov114 » 01 ноя 2008, 16:10

Костик писал(а):там в скрипте всё это написано, я не знаю зачем всё это написано здесь :unknown:

Некоторым просто сложно комментарии читать. Ибо сколько раз я кидал ссыль на класс..и столько раз спрашивали как его использовать...и даже спрашивали некоторые после посыла в комментарии.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3198
Зарегистрирован: 18 окт 2007, 02:21

Re: Настройка HSDN Mirroring Cacher

Сообщение Костик » 01 ноя 2008, 16:20

скрипт еще сыроватенький так что учитывайте :crazy:
FreeBSD 9.2 and Fedora 18 user
Аватара пользователя
Костик
Активный участник
 
Сообщения: 1944
Зарегистрирован: 03 сен 2007, 02:15

Re: Настройка HSDN Mirroring Cacher

Сообщение zk » 01 ноя 2008, 16:31

Костик писал(а):скрипт еще сыроватенький так что учитывайте :crazy:

Ну если кто найдёт ошибки или будут замечания - пусть пишут тут, а хсдну мы ссылку на тему дадим уж как-нибудь =))
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Настройка HSDN Mirroring Cacher

Сообщение Rostov114 » 01 ноя 2008, 19:31

zk писал(а):
Костик писал(а):скрипт еще сыроватенький так что учитывайте :crazy:

Ну если кто найдёт ошибки или будут замечания - пусть пишут тут, а хсдну мы ссылку на тему дадим уж как-нибудь =))

Да...только если что хсдн насчет скрипта не писать..потому что я так думаю его и так его уж задолбали.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3198
Зарегистрирован: 18 окт 2007, 02:21

Re: Настройка HSDN Mirroring Cacher

Сообщение zk » 01 ноя 2008, 19:34

Rostov114 писал(а):Да...только если что хсдн насчет скрипта не писать..потому что я так думаю его и так его уж задолбали.

Ага, его ошибки в его проектах не интересуют, так что если найдёте - ничего ему не сообщайте, просто поржём тут втихаря.
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru


Вернуться в PHP, HTML, CSS...

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 123