Spec-Zone.ru › Wagtail

Развёртывание 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.

На alwaysdata

alwaysdata — это платформа как услуга (PaaS), предоставляющая общедоступные и частные облачные предложения. Начиная с бесплатного плана, они предоставляют базы данных MySQL/PostgreSQL, электронную почту, бесплатные сертификаты SSL, включенные резервные копии и т. д.

Для запуска вашего приложения Wagtail вы можете:

  • установить Wagtail из Marketplace alwaysdata
  • настроить приложение Django

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

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

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

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

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

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

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

Wagtail следует конвенциям Django для управления загруженными файлами. Итак, по умолчанию Wagtail использует встроенный класс Django 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, так как текущие браузеры отклонят удалённые файлы шрифтов, у которых отсутствует допустимый заголовок. Для Amazon S3, обратитесь к документации Установление разрешений доступа к ведру и объекту, или (только для модуля 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, которую вы используете.

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

Spec-Zone.ru

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