Apache-2.4

在 /jenkins 上使用 apache 執行 Jenkins

  • September 25, 2017

我需要訪問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是否有可能使來自我的Jenkins伺服器的所有請求都成為表單example.com/jenkins/*而不是example.com/*

PS:我知道創建一個名為 的新伺服器會更好jenkins.example.com,但目前這不是我的選擇。

Jenkins 內部似乎有一個配置 Jenkins URL 的選項:Jenkins website root path

另外,我在 Jenkins Wiki: Running Jenkins behind Apache中找到了 apache 配置文件。

編輯

我設法以這樣的方式執行Jenkins伺服器http://example.com/jenkins

  • 在我的本地機器上,通過在文件中添加JENKINS_ARGS變數、--prefix=/jenkins屬性,/etc/default/jenkins然後重新啟動 Jenkins 服務。(來源:這個答案
  • 在我的 docker 映像上,通過在命令--prefix=/jenkins末尾添加:run``docker run --name Jenkins -p 8080:8080 -p 50000:50000 jenkins --prefix=/jenkins

這是我的Jenkins的****apache配置條目:

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

資料來源:在 Apache 後面執行 Jenkins

引用自:https://serverfault.com/questions/873796