Spec-Zone.ru › Wagtail 2

Производительность

Wagtail разработан для скорости, как в интерфейсе редактора, так и на фронтенде. Но если вам нужна ещё лучшая производительность или вы работаете с очень большим объёмом трафика, вот несколько советов, как извлечь максимум из вашей установки.

Интерфейс редактора

Мы постарались свести к минимуму внешние зависимости для работоспособной установки Wagtail, чтобы упростить его настройку. Тем не менее, для повышения производительности можно настроить ряд параметров по умолчанию:

Кэширование

Мы рекомендуем использовать Redis в качестве быстрого и персистентного кэша. Установите Redis через ваш менеджер пакетов (в Debian или Ubuntu: sudo apt-get install redis-server), добавьте django-redis в свой requirements.txt, и включите его как кэш-бекенд:

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/dbname',
        # for django-redis < 3.8.0, use:
        # 'LOCATION': '127.0.0.1:6379',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

Кэширование представлений изображений

Если вы определите кэш с именем «представления» (обычно наряду с кэшем «по умолчанию»), Wagtail будет кэшировать запросы к представлениям изображений, что может улучшить производительность страниц, содержащих много изображений.

CACHES = {
    'default': {...},
    'renditions': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
        'TIMEOUT': 600,
        'OPTIONS': {
            'MAX_ENTRIES': 1000
        }
    }
}

Поиск

Wagtail поддерживает Elasticsearch — как в интерфейсе редактора, так и для пользователей вашего сайта — но может перейти к поиску в базе данных, если Elasticsearch отсутствует. Elasticsearch быстрее и мощнее, чем Django ORM для поиска по тексту, поэтому мы рекомендуем установить его или использовать хостинг-сервис, например, Searchly.

Подробную информацию о настройке Wagtail для Elasticsearch см. в разделе Elasticsearch Backend.

База данных

Wagtail протестирован с PostgreSQL, SQLite и MySQL. Он может работать и с некоторыми сторонними базами данных, но это не гарантируется. Для использования в производстве мы рекомендуем PostgreSQL.

Шаблоны

Накладные расходы при чтении и компиляции шаблонов со временем накапливаются. Django оборачивает свои стандартные загрузчики с помощью cached template loader: который хранит скомпилированные Template в памяти и возвращает их для последующих запросов. Кэшированный загрузчик автоматически включается, когда DEBUG False. Если вы используете пользовательские загрузчики, обновите свои настройки для использования его:

TEMPLATES = [{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    'OPTIONS': {
        'loaders': [
            ('django.template.loaders.cached.Loader', [
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
                'path.to.custom.Loader',
            ]),
        ],
    },
}]

Пользователи

Кэширующий прокси

Для поддержки большого объема трафика с отличными скоростями отклика мы рекомендуем использовать кэширующий прокси. Как Varnish, так и Squid были протестированы в производстве. Хостинг-прокси, такие как Cloudflare, также должны работать хорошо.

Wagtail поддерживает автоматическое отключение кэша для Varnish/Squid. Дополнительную информацию см. в Frontend cache invalidator.
  • Предыдущая Развертывание Wagtail
  • Следующая Международные языки

Содержание страницы

  • Производительность
    • Интерфейс редактора
      • Кэширование
      • Кэширование представлений изображений
      • Поиск
      • База данных
      • Шаблоны
    • Пользователи
      • Кэширующий прокси

© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v2.16.3/advanced_topics/performance.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API