Плагин «Домен для статики»
Описание
Плагин предназначен для переноса статических файлов на отдельный домен (поддомен).
Обязательным условием является использование одного сервера (общей файловой системы для сайта и для статических файлов).
GitHub: github.com/wasja1982/livestreet_staticdomain
Настройка
Настройка плагина осуществляется редактированием файла "/plugins/staticdomain/config/config.php".
Поддерживаемые директивы:
1) $config['static_web'] — Домен для статических файлов.
2) $config['static_server'] — Путь к каталогу для статических файлов.
3) $config['use_static_cache'] — Привязать JS и CSS к статическому домену. По умолчанию отключено (false).
Установка
1. Скопировать плагин в каталог /plugins/
2. Создать требуемую структуру каталогов.
3. Настроить работу домена для статических файлов.
4. Через панель управления плагинами (/admin/plugins/) запустить активацию плагина.
Пример настройки (отдельный поддомен для статики)
1) Настройка двух виртуальных серверов в Apache
Задаются пути для корневых каталогов основного домена и поддомена для статики:
# Основной домен <VirtualHost *:8080> ServerName site.ru ServerAdmin admin@site.ru ServerAlias www.site.ru DocumentRoot /var/sites/site.ru/htdocs </VirtualHost> ## Поддомен для статики (настраивается при отсутствии nginx) #<VirtualHost *:8080> # ServerName img.site.ru # ServerAdmin admin@site.ru # ServerAlias img.site.ru # DocumentRoot /var/sites/img.site.ru/htdocs #</VirtualHost>
2) Настройка nginx
Настраивается передача всех запросов на основной сервер и непосредственный доступ к файлам у поддомена для статики:
# Основной домен server { listen 80; server_name site.ru www.site.ru; location / { proxy_pass http://127.0.0.1:8080; } location ~ /\.ht { deny all; } } # Поддомен для статики server { listen 80; server_name img.site.ru; location / { root /var/sites/img.site.ru/htdocs; } location ~ /\.ht { deny all; } }
3) Перенос статических файлов шаблона (не обязательно)
Необходимо скопировать все статические файлы (изображения, CSS, JS) из каталога "/var/sites/site.ru/htdocs/templates" в каталог "/var/sites/img.site.ru/htdocs/templates" с обязательным сохранением структуры каталогов.
Задать в файле «config.local.php» LiveStreet значение переменной
$config['path']['static']['root'] = 'http://img.site.ru';
4) Настройка плагина
В файле "/plugins/staticdomain/config/config.php" задать:
— домен для статики;
$config['static_web']='___path.static.root___';
или (если не настраивался пункт 3)
$config['static_web']='http://img.site.ru';
— путь к каталогу для статических файлов
$config['static_server']='/var/sites/img.site.ru/htdocs';
— разрешить привязку JS и CSS к статическому домену
$config['use_static_cache']=true;
5) Активировать плагин
Если не работает, то проверьте, чтобы были выставлены права доступа к каталогу "/var/sites/img.site.ru/htdocs" и для всех вложенных (0x755).
30 комментариев
У меня как минимум в одном случае без этой строки поддомен не заводился.
1) настроен домен и поддомен;
2) настроен домен и правило, которое будет пропускать изображения, CSS, JS мимо Apache.
А раздача статики НЕ апачем, а nginx — это чистый буст производительности.
3) $config['use_static_cache'] — Привязать JS и CSS к статическому домену. По умолчанию отключено (false). в https:// ибо если это выйдет до домен с https:// будет отображаться нормально и http:// тоже.