Spec-Zone.ru › Wagtail 2

Развёртывание Wagtail

На вашем сервере

Wagtail легко развернуть на современных дистрибутивах Linux, и он должен работать с любыми комбинациями, подробно описанными в документации по развертыванию Django в документации по развертыванию. Обратитесь к разделу о производительности для получения рекомендаций по не-Python сервисам.

На Divio Cloud

Divio Cloud — это облачная платформа хостинга на базе Docker для Python/Django, которая позволяет запускать и развертывать проекты Wagtail за несколько минут. С бесплатной учётной записью вы можете создать проект Wagtail. Вы можете выбрать:

  • сайт на базе проекта Wagtail Bakery, или
  • новый проект Wagtail (см. инструкции по началу работы).

Divio Cloud также предоставляет живую демонстрацию Wagtail Bakery (без необходимости регистрации).

На PythonAnywhere

PythonAnywhere — это платформа как услуга (PaaS), ориентированная на хостинг и разработку на Python. Она позволяет разработчикам быстро разрабатывать, размещать и масштабировать приложения в облачной среде. Начиная с бесплатного плана, они также предоставляют базы данных MySQL и PostgreSQL, а также гибкие и доступные платные планы, так что у вас есть всё необходимое для размещения сайта Wagtail. Чтобы быстро начать работу, вы можете использовать wagtail-pythonanywhere-quickstart.

На Google Cloud

Google Cloud — это инфраструктура как услуга (IaaS), которая предлагает множество управляемых продуктов, поддерживаемых библиотеками Python-клиентов, которые помогут вам создавать, развертывать и контролировать ваши приложения. Вы можете развернуть Wagtail или любое приложение Django различными способами, в том числе на App Engine или Cloud Run.

На других платформах PAAS и IAAS

Нам известно о сайтах Wagtail, работающих на Heroku, Digital Ocean и других платформах. Если вы успешно установили Wagtail на вашей платформе или инфраструктуре, пожалуйста, внести свой вклад в эту документацию!

Советы по развертыванию

Статические файлы

Как и во всех проектах Django, статические файлы не предоставляются сервером приложений Django в рабочей среде (т. е. вне manage.py runserver команды); их необходимо обрабатывать отдельно на уровне веб-сервера. См. документацию Django по развертыванию статических файлов.

Файлы JavaScript и CSS, используемые административной панелью Wagtail, часто меняются между выпусками Wagtail — важно избегать предоставления устаревших версий этих файлов из-за кэширования на стороне браузера или сервера, так как это может привести к трудно диагностируемым проблемам. Мы рекомендуем включить ManifestStaticFilesStorage в настройках STATICFILES_STORAGE — это гарантирует, что различным версиям файлов будут назначены разные URL-адреса.

Файлы, загруженные пользователем

Wagtail следует конвенциям Django для управления загружаемыми файлами. Таким образом, по умолчанию Wagtail использует встроенный класс Djangos FileSystemStorage, который хранит файлы на сервере вашего сайта в каталоге, указанном настройкой MEDIA_ROOT. В качестве альтернативы, Wagtail можно настроить для хранения загруженных изображений и документов в облачной службе хранения, такой как Amazon S3; это делается через настройку DEFAULT_FILE_STORAGE в сочетании с дополнительным пакетом, таким как django-storages.

При использовании FileSystemStorage, URL-адреса изображений строятся, начиная с пути, указанного в MEDIA_URL. В большинстве случаев вам следует настроить веб-сервер для непосредственного предоставления файлов изображений (без прохождения через Django/Wagtail). При использовании одного из облачных хранилищ, URL-адреса изображений напрямую указывают на URL-адрес файла в облачном хранилище. Если вы хотите предоставить изображения с отдельного сервера ресурсов или CDN, вы можете настроить представление для предоставления изображений для перенаправления.

Отображение документов контролируется методом WAGTAILDOCS_SERVE_METHOD. При использовании FileSystemStorage, документы хранятся в подкаталоге documents в каталоге MEDIA_ROOT вашего сайта. Если все ваши документы общедоступны, вы можете установить WAGTAILDOCS_SERVE_METHOD в direct и настроить свой веб-сервер для непосредственного предоставления файлов. Однако, если вы используете настройки приватности коллекций Wagtail Настройки приватности коллекций для ограничения доступа к некоторым или всем вашим документам, вы можете или не захотите настроить свой веб-сервер для непосредственного предоставления документов. Значение по умолчанию — redirect, которое позволяет Wagtail выполнять любые настроенные проверки конфиденциальности перед передачей предоставления фактического документа вашему веб-серверу или CDN. Это означает, что Wagtail создаёт ссылки на документы, которые проходят через Wagtail, но конечный URL в браузере пользователя предоставляется напрямую вашим веб-сервером. Если это неприемлемо, вы можете установить WAGTAILDOCS_SERVE_METHOD в serve_view и настроить свой веб-сервер, чтобы он не предоставлял файлы документов напрямую. Если вы предоставляете документы из облака и вам необходимо применить настройки конфиденциальности, убедитесь, что документы недоступны для публичного доступа с помощью URL-адреса файла облачной службы.

Облачное хранилище

Помните, что настройка удалённого хранилища не полностью перенесёт задачи обработки файлов с сервера приложения — некоторые функции Wagtail требуют, чтобы сервер приложения считывал файлы обратно. В частности, оригинальные файлы изображений необходимо считывать обратно при создании нового масштабированного изображения, а документы могут быть настроены на предоставление через представление Django для проверки разрешений (см. WAGTAILDOCS_SERVE_METHOD).

Обратите внимание, что бэкэнды django-storages Amazon S3 (storages.backends.s3boto.S3BotoStorage и storages.backends.s3boto3.S3Boto3Storage) не правильно обрабатывают дублирующиеся имена файлов в своей конфигурации по умолчанию. При использовании этих бэкэндов AWS_S3_FILE_OVERWRITE необходимо установить в False.

Если вы также предоставляете статические файлы Wagtail из удалённого хранилища (используя настройку Django STATICFILES_STORAGE), вам нужно убедиться, что оно настроено на предоставление заголовков CORS HTTP CORS HTTP headers, так как современные браузеры отклонят удалённые файлы шрифтов, у которых отсутствует допустимый заголовок. Для Amazon S3 обратитесь к документации Setting Bucket and Object Access Permissions, или (только для бэкэнда storages.backends.s3boto.S3Boto3Storage) добавьте следующее в настройки Django:

AWS_S3_OBJECT_PARAMETERS = {
    "ACL": "public-read"
}

Параметр ACL принимает список предварительно определённых конфигураций для Amazon S3. Для получения дополнительной информации обратитесь к документации Canned ACL.

Для Google Cloud Storage создайте конфигурацию cors.json.

[
    {
      "origin": ["*"],
      "responseHeader": ["Content-Type"],
      "method": ["GET"],
      "maxAgeSeconds": 3600
    }
]

Затем примените эту конфигурацию CORS к хранилищу ведра:

gsutil cors set cors.json gs://$GS_BUCKET_NAME

Для других хранилищ обратитесь к документации вашего поставщика или к документации библиотеки бэкэнда Django хранилища, которую вы используете.

  • Предыдущая Как добавить Wagtail в существующий проект Django
  • Следующая Производительность

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

  • Развёртывание Wagtail
    • На вашем сервере
    • На Divio Cloud
    • На PythonAnywhere
    • На Google Cloud
    • На других PAAS и IAAS
    • Советы по развертыванию
      • Статические файлы
      • Файлы, загруженные пользователем
      • Облачное хранилище

© 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/deploying.html

Spec-Zone.ru

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