Мне нужен доступ к /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