На нашем веб-сервере мы размещаем несколько докеризированных веб-приложений, назовем это group.example.com
. Наши субдомены обрабатываются через nginx как суффиксы, что означает что-то вроде group.example.com/app1/
group.example.com/app2/
как root urls.
При использовании Django мы сталкиваемся с проблемами, так как все его URL-адреса, сгенерированные url
в шаблонах, таких как <a href="{% url 'index' %}">home</a>
, будут относительными ссылками, поэтому отображаются в <a href="/">home</a>
. Эта относительная ссылка не будет правильно интерпретироваться, что приведет к главной странице, не относящейся к приложению group.example.com
.
Таким образом, цель состоит в том, чтобы иметь префикс на основе приложения, такой как /app1/
для всех ссылок. Я могу жестко закодировать их для ссылок c, но должен быть более элегантный способ. Также это приводит к проблеме с отправкой использованных форм на неправильную страницу - повторное перенаправление обратно на главную страницу, не относящуюся к приложению group.example.com
.
Я попытался добавить /app1/
ко всем зарегистрированным URL-адресам в качестве префикса, но, похоже, это тоже не работает - так работает приложение, но пользователю нужно будет посетить group.example.com/app1/app1/
, чтобы попасть в индекс, и относительные ссылки все еще не работают правильно.
В приложении docker -container мы запускаем веб-приложение с nginx
и uwsgi
. Он отлично работает при использовании правильных поддоменов, таких как app1.example2.com
, но у нас нет такой возможности на нашем новом быстром веб-сервере, на котором мы хотим разместить приложение.
Есть ли способ решить эту проблему, используя контейнеры приложения nginx
, uwsgi
или django
/ middleware config, чтобы получить ссылки для разрешения group.example.com/app1/
как root?