Развёртывание Wagtail
На вашем сервере
Wagtail легко развернуть на современных дистрибутивах Linux, и он должен работать с любыми комбинациями, описанными в документации по развертыванию Django документации по развертыванию. Обратитесь к разделу о производительности для рекомендуемых нами сервисов, не связанных с Python.
На Divio Cloud
Divio Cloud — это облачная платформа хостинга на базе Docker для Python/Django, которая позволяет запускать и развертывать проекты Wagtail за считанные минуты. С бесплатной учётной записью вы можете создать проект 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 вы можете:
На других платформах 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