【问题标题】:Jenkins - 403 Forbidden詹金斯 - 403 禁止
【发布时间】:2018-01-28 01:49:54
【问题描述】:

我刚刚通过以下方式在 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"

【问题讨论】:

标签: apache jenkins proxy port


【解决方案1】:

也许,防火墙阻止了 Jenkins

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

/etc/init.d/iptables.sh stop

【讨论】:

  • 请不要那样做。这会完全阻止您的防火墙。如果确实需要打开一个端口,则在此处为其添加规则。
【解决方案2】:

好吧,我终于找到了错误: 首先 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 就无法工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多