詹金斯 - 403 Forbidden

时间:2017-08-19 14:05:43

标签: apache jenkins proxy port

我刚刚在Ubuntu 16.04服务器上通过以下方式安装了Jenkins:

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时,我得到了一个

  

禁止

     

您无权访问此服务器上的/ jenkins。

但是当我在服务器上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
所以apache的当前配置如下所示:

## 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"

2 个答案:

答案 0 :(得分:1)

好吧我终于找到了错误: 必须删除第一个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就不起作用。

答案 1 :(得分:-1)

也许防火墙阻止了詹金斯

对我来说,只需运行此命令即可解决此问题

/etc/init.d/iptables.sh stop