首先,我要指出的是,我以前在这里见过这个问题,但从来没有给出真正有效的答案。
问题如下:我有一个在 8080 上运行的 Jenkins 服务器(Ubuntu 14.04)。我试图将其移植到 [domain]/ci/。虽然这很简单,而且确实有效,但大多数链接仍然指向根目录,即 [domain],因此无法从该地址访问服务器。我尝试了各种选项
proxy_redirect http://$host/ http://$host/ci/;
带端口或不带端口、完整主机名、本地主机……随便你怎么说。什么都没有。链接仍然指向服务器的根目录,因此许多链接、所有图像和脚本都不可用。
这是配置文件中的 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/
但它不起作用。这很可能是 Jenkins 的错误,因为链接都是按照 root (例如<link rel="stylesheet" type="text/css" href="/static/15751a6d/css/style.css" />
) 进行的,但我仍然认为我遗漏了一些东西。
答案1
您的设置存在问题,Jenkins 不知道您移动了其根 URL。
正如 Jenkins wiki 所述,您应该使用以下参数才能正确运行它:
JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=/ci"
推荐阅读:Jenkins 维基