gitlab docker nginx обратный прокси к дополнительному пути - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь настроить nginx в качестве обратного прокси для маршрутизации apps.mycompany.com/gitlab в контейнер докера gitlab, работающий на том же сервере, что и nginx:

Конфигурация nginx имеет:

location /gitlab/ {
    proxy_pass     http://127.0.0.1:3000/;
    proxy_redirect default;
}

первый http-вызов apps.mycompany.com/gitlab проходит гладко, но в основном все ссылки внутри html (например, href:"/assets/...") все еще маршрутизируются на apps.mycompany.com/assets/... вместо apps.mycompany.com/gitlab/assets/...

Так что никакие активы и файлы css не найдены. Отрисованная страница имеет структуру, но не имеет стиля, и я даже не знаю, что еще не работает.

Я недостаточно знаю nginx, чтобы понять, что я делаю не так

1 Ответ

0 голосов
/ 17 декабря 2018

NGINX

В вашей конфигурации nginx добавьте proxy_set_header и измените proxy_pass следующим образом:

location /gitlab/ {
    proxy_set_header Host $http_host;
    proxy_pass http://127.0.0.1:3000/gitlab/;
}

GITLAB

Что вам нужно, так это относительный URL конфигурация в GitLab.

Если у вас GitLab в версии 8.5 или выше, выполните одно из следующих действий в зависимости от типа развертывания GitLab:

Развертывание DOCKER-COMPOSE

Добавить переменную среды external_url в файл docker-compose.yml, пример файла:

gitlab:
    image: 'gitlab/gitlab-ce:11.5.2-ce.0'
    restart: always
    environment:
            GITLAB_OMNIBUS_CONFIG: |
                    external_url 'http://apps.mycompany.com/gitlab/'
    ports:
            - '3000:80'

Затем перезапустите докер GitLab:

docker-compose up -d

Развертывание DOCKER

Если вы не используете docker-compose (что я настоятельно рекомендую), тогда вы можете добавить опцию external_url к вашей команде docker run, пример выполнения:

docker run --detach --publish 3000:80 --restart always --env GITLAB_OMNIBUS_CONFIG="external_url 'http://apps.mycompany.com/gitlab/'" gitlab/gitlab-ce:11.5.2-ce.0

Обновление файлов конфигурации GitLab - может использоваться во всех видах развертываний

Другой подход заключается в прямом изменении файла конфигурации GitLab, но я бы порекомендовал это для автономных установок GitLab, а не для развертывания докеров.

Изменить конфигурацию GitLab в /etc/gitlab/gitlab.rb, изменить значение external_url на следующее:

external_url "http://apps.mycompany.com/gitlab"

После этого изменения вам нужно перенастроить GitLab:

sudo gitlab-ctl reconfigure

Затем перезапустите службу:

sudo gitlab-ctl restart

Более подробную информацию о конфигурации GitLab вы можете найти в официальной документации .

Рекомендую также проверить GitLab при развертывании докера Официальная документация .

Обратите внимание, что относительная поддержка URL в Omnibus GitLab экспериментальная и была введена в версии 8.5 (для более ранней версии вам необходимо скомпилировать ее из исходного кода - doc ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...