Прежде всего позвольте мне отметить, что я встречал здесь этот вопрос раньше, но никогда не давал ответа, который действительно работает.
Вот проблема: у меня сервер Jenkins работает на 8080 (Ubuntu 14.04). Пытаюсь перенести его на [домен] / ci /. Хотя это довольно простая вещь и требует работы, большинство ссылок по-прежнему идут в корень, то есть [домен], что делает сервер недоступным с этого адреса. Я перепробовал все варианты с
proxy_redirect http://$host/ http://$host/ci/;
С портом или без него, полное имя хоста, localhost ... вы называете это. Ничего. Ссылки по-прежнему идут в корень сервера, поэтому многие ссылки, все изображения и сценарии недоступны.
здесь находится раздел ci в файле конфигурации. ПОНРАВИТСЯ на это, это просто не сработает.
location /ci/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect http://$host/ http://$host/ci/;
}
Бег
curl -I [domain]/ci
Возврат
Location: http://[domain]/ci/
Но не работает. Это вполне может быть ошибкой Дженкинса, поскольку все ссылки следуют за корнем (например, <link rel="stylesheet" type="text/css" href="/static/15751a6d/css/style.css" />
), но я все еще считаю, что что-то упускаю.
Проблема вашей настройки заключается в том, что Дженкинс не знает, что вы переместили его корневой URL.
Как сказано в вики Jenkins, для правильной работы вам следует использовать следующие аргументы:
JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=/ci"
Рекомендуемая литература: Дженкинс вики