Как работать с несколькими URL-адресами для одного и того же сайта в многосайтовой среде трясогузки

Я настраиваю многосайтовую среду с трясогузкой (возможно, это немного амбициозно, так как я новичок в трясогузке, Django и Python, но я хотел бы перенести некоторые простые сайты в трясогузку и хотел иметь правильную настройку с самого начала ). Я создал список сайтов в админке трясогузки и домашние страницы для каждого из сайтов. Я хотел бы, чтобы часть сайта была доступна через несколько URL-адресов (name.com + name.othername.com). Должен ли я создать новую настройку сайта (через «Добавить сайт» в админке) для каждого URL-адреса или есть лучший/другой способ справиться с этим?


person Marco    schedule 05.11.2017    source источник


Ответы (1)


Я бы рекомендовал использовать внешний веб-сервер (например, Apache) для работы с несколькими доменами. Определите прокси-сервер виртуального хоста, чтобы он указывал на ваше приложение трясогузки.

Вот пример:

<VirtualHost *:80>
    ServerName example1.com
    ServerAlias www.example1.com
    ServerAlias example2.com

    # Here we define the proxy to your wagtail app
    ProxyPass / http://localhost:8000/
    # Reverse Proxy for load balancing
    ProxyPassReverse / http://localhost:8000/
    # Preserves the host if you use docker
    ProxyPreserveHost On
</VirtualHost>

В любом случае вам понадобится внешний веб-сервер для обслуживания статического контента в режиме без отладки.

person Tobias Ernst    schedule 13.11.2017
comment
Я использую NGINX и организовал покрытие различных URL-адресов в настройках NGINX, но разве Трясогузка не должна понимать URL-адреса? И я понял, что в настройке с несколькими сайтами мне нужно сообщить Трясогузке, что такое домашние страницы разных URL-адресов. - person Marco; 18.11.2017
comment
Если все ваши страницы имеют одинаковую точку входа на веб-сайт, достаточно определить один сайт трясогузки и несколько прокси-серверов nginx, указывающих на него. Трясогузка не заботится об имени виртуального хоста. Если вы хотите использовать разные точки входа для разных страниц, создайте несколько сайтов трясогузок. Имя хоста и порт должны соответствовать конфигурации вашего виртуального хоста. Вы можете определить несколько прокси, по одному для каждого сайта трясогузки. Затем запустите отдельные экземпляры трясогузки для каждого порта с помощью: ./manage.py runserver <port> Надеюсь, это поможет. - person Tobias Ernst; 21.11.2017
comment
Спасибо за ответ Тобиас! Но... я использую многосайтовую установку; примерно так, как описано здесь: wagtail.io/blog/multi-site-wagtail . Поэтому я определил URL-адреса и точки входа (используемые страницы) для разных сайтов в меню «Сайты» и определил эти (точки входа) страницы ниже корневого уровня. Все идет нормально. Я предполагаю, что мне нужно определить URL-адрес альтернативы/псевдонима (например, www.a.com как альтернативу/псевдоним для a.com) также в меню «Сайты». Звучит правильно для вас? - person Marco; 28.11.2017
comment
Ваш заголовок вводит в заблуждение, так как вы хотите, чтобы 1 сайт был доступен из нескольких доменов. Вместо этого вы говорите о мультисайте, то есть о 2 или более сайтах на одной установке, которая (также) доступна через 2 или более доменов. Псевдоним на уровне веб-сервера был бы выходом, а не добавлением нескольких сайтов к одной установке трясогузки. - person moojen; 02.10.2020