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

Запуск Jenkins с apache в / jenkins

Мне нужен доступ к /jenkins путь к Дженкинс сервер.

Вот что у меня сейчас в конфигурации apache:

ProxyPass /jenkins http://localhost:8080
ProxyPassReverse /jenkins http://localhost:8080

Когда я иду в example.com/jenkins,
Меня перенаправляют на example.com/login?from=%2F,
вместо ожидаемого exmaple.com/jenkins/login?from=%2F.

Так возможно ли с участием Apache делать все запросы, исходящие от моих Дженкинс сервер, иметь форму example.com/jenkins/* вместо того example.com/*?

P.S .: Я знаю, что было бы гораздо лучше создать новый сервер, названный примерно так jenkins.example.com, но в данный момент для меня это не вариант.

Я протестировал такую ​​установку на фиктивном index.html.

ProxyPass "/jenkins" http://192.168.0.99
ProxyPassReverse "/jenkins" http://192.168.0.99

Как и ожидалось, когда я открыл http://example.com/jenkins Меня перенаправили на index.html по адресу http://192.168.0.99.

Вам следует заглянуть в свой htdocs корень jenkins. Если есть редирект вроде <meta http-equiv="refresh" content="0;URL=/login?from=%2F"> тогда он будет перенаправлен на example.com/login?from=%2F. Если вы измените перенаправление на относительный путь с ведущими ., он будет правильно перенаправлять:

<meta http-equiv="refresh" content="0;URL=./login?from=%2F">

Таким образом, он будет правильно перенаправлен на example.com/jenkins/login?from=%2F

Похоже, что есть возможность настроить URL-адрес Jenkins внутри самого Jenkins: Корневой путь веб-сайта Jenkins.

Кроме того, я нашел документацию по конфигурации apache в Jenkins Wiki: Запуск Дженкинса за Apache.

РЕДАКТИРОВАТЬ:

Мне удалось добиться запуска Дженкинс сервер в http://example.com/jenkins как это:

  • на моем локальном компьютере, добавив в JENKINS_ARGS переменная, --prefix=/jenkins атрибут, в /etc/default/jenkins файл, а затем перезапустите службу Jenkins. (Soruce: этот ответ)
  • на моем образе докера, добавив --prefix=/jenkins в конце run команда: docker run --name Jenkins -p 8080:8080 -p 50000:50000 jenkins --prefix=/jenkins

И вот мой Apache запись конфигурации для Дженкинс:

ProxyPass        /jenkins http://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyRequests    Off
AllowEncodedSlashes NoDecode

Источник: Запуск Дженкинса за Apache