Архив

Самое простое ускорение сайта

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

Что я предлагаю ?

Давайте засунем главную страницу сайта, в memcache, и настроим nginx что бы он отдавал ее прямо из memcache не обращаясь к интерпретаторам. Будем класть раз в минуту сроком жизни на 60 секунд. Стоит понимать, что данный способ нужно дорабатывать, если у вас на страницах используется динамичные данные, то есть данный способ актуален только для "гостей" сайта, благо nginx умеет работать и cookie.

Пример настройки nginx'a

location / {

    default_type    text/html;

    if ( $request_uri = '/')
    {
        set $memcached_key "index_page";
        memcached_pass 127.0.0.1:11211;

        error_page 404 503 = @fallback;
    }

    error_page 404 = @fallback;
}

Пример cron скрипта, который можно повесить на выполнение.

error_reporting(E_ALL);
ini_set('display_errors', 1);

if( class_exists('Memcache', FALSE))
{
    $mem = new Memcache;

    $mem->connect('localhost', 11211);

    $html = file_get_contents('http://blog.rpsl.info/?asd');

    if(!empty( $html ) )
    {
        //$mem->delete('index_page', 0);
        $mem->set('index_page', $html, 0, 60 );

        //echo $html;
    }
}
else
{
    echo 'no memcache';
}

Стоит обязательно обратить внимание, что бы запрашивая урл страницы, вы точно получали свежий ответ, т.к. возможна ситуация, когда произойдет зацикливание и ваш скрипт будет брать страницу из кэша и класть ее обратно в кэш.