我只是通過一個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/jenkins
到HTTP_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"
你看過這裏的文檔嗎? https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+Apache – axlj
是的我嘗試了'ProxyPreserveHost On,ProxyRequests Off,AllowEncodedSlashes NoDecode,SetEnv proxy-nokeepalive 1'。以及向ProxyPass添加'nocanon'。但沒有可見的變化。 – Hering