Назад | Перейти на главную страницу

Nginx: переписать ссылки на сайте на другой домен

Задний план: У нас запущен экземпляр Gitlab, который доступен через 2 разных домена из 2 разных сетей (это предусмотрено сетевой структурой и не может быть изменено). Gitlab поддерживает только 1 домен. Раньше это работало из коробки, но с последним обновлением ссылки на файлы в репозитории устанавливаются на основной домен, даже если они поступают из второго домена. Таким образом, мы можем безупречно просматривать пользовательский интерфейс Gitlab через второй домен. Но когда мы щелкаем файл в репозитории, домен меняется со второго на основной (который недоступен из второй сети), потому что ссылки на файлы являются абсолютными URL-адресами с основным доменом. Это означает, что мы не можем открыть файл в веб-интерфейсе Gitlab из второго домена. Проблема только в том, что это абсолютные ссылки с неправильным доменом. При изменении домена вручную мы все еще можем отображать файлы.

Служба поддержки Gitlab заявила, что он не поддерживается самим Gitlab, но должна быть возможность настроить Nginx (который используется Gitlab) для перезаписи URL-адресов в зависимости от запрашивающего домена. Я не мог найти соответствующие результаты при поиске в Интернете (только о перезаписи запрошенных URL-адресов, а не ссылок на сайте).

Чтобы подробнее описать структуру проблемы, посмотрите на эту диаграмму:

Один сервер Gitlab доступен через 2 отдельных балансировщика нагрузки (которые действуют здесь как маршрутизаторы, поскольку они указывают только на этот один сервер). Они доступны в собственном домене (maindomain.com и seconddomain.com соответственно) и только через собственную сеть. Экземпляр Gitlab настроен для maindomain.com домен и не может быть напрямую настроен для второго домена. Описанная выше проблема возникает при попытке открыть файл в веб-интерфейсе при подключении через вторую сеть и seconddomain.com. Все это встроено в организационные сети и недоступно из Интернета.

TL; DR: Можно ли позволить Nginx перезаписывать абсолютные URL-адреса в ссылках на обслуживаемом веб-сайте в зависимости от запрашиваемого URL-адреса веб-сайта? Если да, то как это можно сделать?