Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Книга рецептов (Cookbook) // Производительность системы //

    Кэширование статического контента


    Система управлени позволяет веб-серверу, под управлением которого она работает, отдавать статические файлы пользователям напрямую. Это позволяет еще больше ускорить её работу и значительно снизить нагрузку на сервер.

    Статическое хранение файлов CSS, JS, HTC

    Система при первом обращении к css, js и htc файлам, которые лежат в Templates, сохраняет обработанный результат в директории Cache под такими же именами. Напоминаем, что в этих файлах можно использовать макросы из кэшируемой группы. После этого система будет автоматически заменять в тексте страниц все обращения вида /alias/filename.ext на статические ссылки вида $RealmURL$/Cache/filename.ext.

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

    Важно: для правильной работы данного механизма разработчику не нужно ничего делать кроме как соблюдать следующие условия:

    • Кэшируются и автозаменяются только ссылки вида /alias/filename.ext. Внешние файлы с других сайтов и ссылки напрямую к файлам в Templates, Images и т.д. игнорируются.
    • Внутри любого подключаемого файла запрещено использовать некэшируемые сервисы.

    Статическая главная страница сайта

    CMS хранит главную страницу сайта в папке /SuperCache веб-сервера. Поскольку главная страница сайта запрашивается чаще других, это может дать серьезный выигрыш в производительности на нагруженных проектах. Отдавать данную страницу система будет автоматически, используя mod_rewrite. Поэтому, данная функция будет работать только при использовании веб-сервера Apache (NT/Unix).

    Для других серверов (IIS, nginx) перенаправление на главную страницу возможно реализовать аналогичным образом.

    Важно:

    • Данная опция не будет работать для сайтов, где главная страница требует обработки при каждом обращении. Определить это просто: очистите кэш, обратитесь к главной странице и посмотрите на расширение созданного в Cache файла. Готовые страницы имеют расширение html, плюс в пару к ним (при включенной компрессии) создается файл dfl. Если же файл имеет расширение raw, то система не будет кэшировать его в статику даже при включенном режиме.
    • Поскольку выводом статических страниц сайта (и главной, и вспомогательных файлов) будет заниматься веб-сервер, то все HTTP заголовки будут сформированы уже не системой управления а веб-сервером. При проведении работ по продвижению сайта в поисковых машинах это нужно учесть.

    Полное статическое кэширование сайта

    Начиная с версии 5.15 "Twilight CMS" позволяет средствами mod_rewrite на вебсервере Apache (NT/Unix) организовать отдачу полностью статических страниц (расширение html) из папки Cache проекта, создавая сопоставление URI и статических файлов в таблице /SuperCache/staticmap.txt. Поскольку данная функция требует использования директивы RewriteMap, потребуется доступ к конфигурационному файлу httpd.conf Apache, что обычно доступно лишь на выделенных серверах и некоторых продвинутых виртуальных хостингах.

    Если такой доступ есть, необходимо внутри секции VirtualHost прописать следующий блок:

        RewriteEngine On
        RewriteMap staticmap txt:/path/to/DocumentRoot/SuperCache/staticmap.txt

        # если параметров нет
        RewriteCond %{QUERY_STRING} ^$
        # если в map есть такой URI без параметра
        RewriteCond ${staticmap:%{HTTP_HOST}%{REQUEST_URI}} >""
        # внутренний редирект на файл в Cache
        RewriteRule ^(.*)$ ${staticmap:%{HTTP_HOST}$1} [L]

        # если параметры есть
        # если в map есть такой URI с параметром
        RewriteCond ${staticmap:%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING}} >""
        # внутренний редирект на файл в Cache
        RewriteRule ^(.*)$ ${staticmap:%{HTTP_HOST}$1?%{QUERY_STRING}} [L]

    В preferences.xml нужно задать ключу staticmap значение on. Данный ключ позволит системе формировать файл /SuperCache/staticmap.txt только когда сервер настроен на его использование.

    После этого нужно будет создать пустой файл /SuperCache/staticmap.txt, поскольку без него Apache не стартует, и перезапустить веб-сервер. Далее, Apache будет напрямую, минуя СMS и экономя значительные ресурсы обращаться к статическим страницам сайта в нужные папки.

    Для других веб-серверов (IIS, nginx) использование таблицы сопоставления URI-файл возможно реализовывать аналогичным образом.

    Примечание: файл staticmap.txt формируется не в реальном времени, а отдельными заходами раз в час (период может меняться от версии к версии системы). Также при работе будут создаваться временный файл и файл блокировки, которые не нужно трогать - система работает с ними сама.

    Также, смотрите секцию "Важно" для предыдущего абзаца.

    « к списку

    версия для печати

     
    © 2003-17 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: