2017-08-19 54 views
0

我只是通過一個Ubuntu 16.04服務器上安裝詹金斯:詹金斯 - 403禁止

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - 
echo "deb https://pkg.jenkins.io/debian-stable binary/" >> /etc/apt/sources.list 
apt update 
apt install jenkins 

之後,我改變了端口/etc/default/jenkinsHTTP_PORT=8000並添加--httpPort=$HTTP_PORT --prefix=$PREFIX/etc/default/jenkins文件,最後因爲我跑很多通過Apache東西了反正我加了一個代理那裏:

ProxyErrorOverride On 
ProxyPass "/jenkins" "http://127.0.0.1:8000/jenkins/" 
ProxyPassReverse "/jenkins" "http://127.0.0.1/jenkins/" 

但是,當我嘗試訪問https://MY_URL/jenkins我得到一個

Forbidden

You don't have permission to access /jenkins on this server.

但是,當我在服務器上做curl localhost:8000我似乎得到的頁面。所以它似乎至少在那個端口上運行,我只是無法通過apache訪問它(像/ gitlab這樣的其他代理以同樣的方式工作)。

有沒有人有一個想法這裏可能是什麼問題?

編輯:當我禁用ProxyErrorOverride On我終於看到我可以輸入管理員密碼,但這樣做又重定向我到同一頁的頁: https://my_url/jenkins/login?from=%2Fjenkins%2F - >https://my_url/jenkins/login?from=%2Fjenkins%2F%2Fj_acegi_security_check
所以對於阿帕奇目前的配置是這樣的:

## Proxy Settings 
ProxyRequests   Off 
ProxyPreserveHost  On 
AllowEncodedSlashes NoDecode 
SetEnv     proxy-nokeepalive 1 
ProxyPass    "/gitlab" "http://127.0.0.1:8001/gitlab/" 
ProxyPassReverse  "/gitlab" "http://127.0.0.1:8001/gitlab/" 
ProxyPass    "/jenkins" "http://127.0.0.1:8000/jenkins/" nocanon 
ProxyPassReverse  "/jenkins" "http://127.0.0.1:8000/jenkins/" 
ProxyPassReverse  "/jenkins" "http://my_url/jenkins/" 
RequestHeader   set X-Forwarded-Proto "https" 
RequestHeader   set X-Forwarded-Port "443" 
+0

你看過這裏的文檔嗎? https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+Apache – axlj

+0

是的我嘗試了'ProxyPreserveHost On,ProxyRequests Off,AllowEncodedSlashes NoDecode,SetEnv proxy-nokeepalive 1'。以及向ProxyPass添加'nocanon'。但沒有可見的變化。 – Hering

回答

0

好吧,我終於找到了錯誤: 首先ProxyErrorOverride On不得不被刪除,第二,我不得不刪除結尾的斜線中的ProxyPass這樣的:

ProxyPass    "/jenkins" "http://127.0.0.1:8000/jenkins" nocanon 
ProxyPassReverse  "/jenkins" "http://127.0.0.1:8000/jenkins" 
ProxyPassReverse  "/jenkins" "http://my_url/jenkins" 

有趣的是,gitlab確實要求它正常工作,如果「/」在那裏,jenkins不起作用。