В итернете есть куча более правильных статей на тему организации дружбы между 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';
}
Стоит обязательно обратить внимание, что бы запрашивая урл страницы, вы точно получали свежий ответ, т.к. возможна ситуация, когда произойдет зацикливание и ваш скрипт будет брать страницу из кэша и класть ее обратно в кэш.