Август
15
2011

Перенос NextGEN Gallery на отдельный домен

Перенос NextGEN Gallery на отдельный домен

Для управлениями картинками я пользуюсь плагином NextGEN Gallery, но вот мне захотелось вынести картинки на отдельный домен cdn.tigors.net. Это позволяет браузеру использовать дополнительные потоки для загрузки картинок, и просто настроить nginx на выдачу статического контента.

Отдельно я описывал эти способы в статьях про поиск хуков в плагинах и про настройку nginx для поддержки wordpress. Теперь соберу все в одном месте, и разбавлю картинками.

Оба домена tigors.net и cdn.tigors.net находятся на одном сервере, просто по разному обрабатываются.

Меняем ссылки на картинки в NextGEN Gallery

Открываем файл functions.php вашей темы и добавляем туда код

function ngg_use_g($image,$imageID){
$image->thumbnailURL = str_replace('tigors.net/wp-content/gallery','cdn.tigors.net/wp-content/gallery', $image->thumbnailURL);
$image->imageURL = str_replace('tigors.net/wp-content/gallery','cdn.tigors.net/wp-content/gallery', $image->imageURL);
return $image;
}
add_filter('ngg_image_object','ngg_use_g', 10,2);

Теперь все картинки, которые выводятся через NextGEN Gallery берутся с cdn.tigors.net

Добавляем домен в nginx

Теперь настраиваем домен в nginx. Для простоты создаем отдельную запись, как видно все просто. Получил запрос, выдал картинку, быстро и эффективно.

server {
listen 80;
server_name cdn.tigors.net;
root /path-to-wordpress/
location /wp-content/gallery/
{
try_files $uri;
}
location /
{
return 403;
}
}

Зачем все это

В чем плюс с точки зрения сервера понятно, быстро отдавать статические картинки, без лишних операций.

Теперь чуточку теории про браузеры. Чтобы не перегрузить сервер кучей запросов у браузеров есть лимит одновременных запросов к домену. Обычно этот лимит в пределах 5-10 запросов.

Серая часть на диаграмме это время ожидания освобождения очереди. Фотографии начали загружаться после загрузки CSS и JS.

Первые фотографии начали загружаться сразу после полной загрузки HTML.

Похожим образом можно настроить выгрузку стилей и Java-script, но они у меня и так организованы одним файлом через WP Minify.

Неправильная раскладка: gthtyjc тучепут пфддукн yf jnltkmysq ljvty

Понравилась статья? Посоветуйте друзьям!

Gallery nginx PHP WordPress WP Plugin Скорость сайта


Понравилась статья? Подпишись на рассылку по E-Mail или в RSS.
  • Detective
    Вот перенсали на отдельный домен и сейчас вообще неразбериха.
  • Где неразбериха?
  • сейчас переношу галерею на другой wp
  • НОРД
    Существует два сервака, на одном ВП, на втором куча места для фото. Как сделать, что бы при стандартной загрузке фоток, файлы грузились на другой сервак . То есть на другой домен?
  • Я так сразу и не могу сказать. Одним NextGen Gallery и wordpress тут не справится. Скорее всего нужно внедрять фильтры в загрузчик изображений, а на втором сервере поднимать движок, который сможет принимать и хранить фотографии. Второй способ, средствами ОС настроить связь между серверами и подключить второй сервер как папку на главном сервере.
  • Я сейча задумалась над тем, как бы использовать NextGen Gallery совместно со сторонним хостингом картинок - например - яндекс-фотками или фликром. Не подскажете, ваше решение тут может помочь?