Spec-Zone.ru › Wagtail 3

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

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',
        }
    }
}

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

Если вы определите кэш с именем «renditions» (обычно вместе с кэшем «default»), 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.

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

Spec-Zone.ru

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