【问题标题】:Can not access Jenkins by --prefix value even if --prefix is set即使设置了 --prefix 也无法通过 --prefix 值访问 Jenkins
【发布时间】:2012-03-29 22:58:16
【问题描述】:

我已经使用 /etc/default/jenkins 设置了 JENKINS_ARGS 并使用 www-data 用户将 jenkins 作为守护程序启动。

系统信息页面显示设置了--prefix=/jenkins

首页 /var/www HUDSON_HOME /var/jenkins JENKINS_ARGS --prefix=/jenkins

但 jenkins 仍然只能通过 http://ip:port/ 而不是 http://ip:port/jenkin 访问。

我也在配置页面设置了Jenkins URL,但是没有成功。

如果还有什么我应该做的,你知道更多吗?

这是我的环境: Linux robopar12227 2.6.35-22-server #35-Ubuntu SMP Sat Oct 16 22:02:33 UTC 2010 x86_64 GNU/Linux java版本“1.6.0_20” OpenJDK 运行时环境 (IcedTea6 1.9.13) (6b20-1.9.13-0ubuntu1~10.10.1) OpenJDK 64 位服务器 VM(内部版本 19.0-b09,混合模式) 詹金斯版1.447

【问题讨论】:

  • 您能否逐字发布 JENKINS_ARGS 是如何在 /etc/default/jenkins 中设置的? (顺便说一句,配置中的 Jenkins URL 是为了让 Jenkins 能够正确填写其链接 - 它与访问它无关)。
  • JENKINS_ARGS=" --prefix=/jenkins"
  • 你的 /etc/init.d/jenkins 中的 DAEMON_ARGS 怎么样?
  • DAEMON_ARGS=" server --port=4001 --home=/var/jenkins --daemon" NAME=jenkins # 如果存在则读取配置变量文件 [ -r /etc/default/$姓名 ] && 。 /etc/default/$NAME start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --chuid www-data --exec $DAEMON -- \ $DAEMON_ARGS \ ||返回 2
  • 这是DAEMON的值:DAEMON="/usr/bin/jenkins "

标签: jenkins


【解决方案1】:

我的 CentOS 系统中运行着 jenkins,请尝试以下步骤:

  1. 编辑 /etc/sysconfig/jenkins,将此行(最后一行)JENKINS_ARGS="" 更改为 JENKINS_ARGS="--prefix=/jenkins"(双连字符)

  2. 调用sudo service jenkins restart

  3. 取决于您正在运行 jenkins 的端口(默认为 8080 - 可以在同一个文件中更改),您应该能够浏览到 http://<hostname or ip>:8080/jenkins

【讨论】:

    【解决方案2】:

    以防万一其他人,比如我,在独立模式下启动 Jenkins 时试图找到一种设置前缀的方法:

    只需将--prefix=/jenkins 添加到您用来启动服务器的命令行即可。
    类似于以下内容:

    nohup java -jar jenkins.war --prefix=/jenkins > /var/log/jenkins/log 2>&1 &
    

    作为malenkiy_scot points out in the first comment on the question,配置中的URL是供Jenkins创建链接而不是设置您可以访问它的前缀。

    【讨论】:

    • 一位经验丰富的系统管理员的评论:不要使用 nohup 来运行守护进程。使用您的 init 系统的适当服务文件以便进行适当的日志记录和管理。
    【解决方案3】:

    像这样将前缀添加到 /etc/default/jenkins

    JENKINS_ARGS="--webroot=/var/cache/jenkins/war --prefix=/jenkins --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

    并重新启动您的詹金斯服务器

    在 Debian/Ubuntu 上试过

    【讨论】:

      【解决方案4】:

      我发现这个页面遇到了同样的问题。对我来说奇怪的是,在 /etc/default/jenkins 中设置 PREFIX 变量不起作用,而是手动将前缀标志添加到 JENKINS_ARGS 中

      JENKINS_ARGS="--prefix=$PREFIX --webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
      

      确实为我工作。

      【讨论】:

        【解决方案5】:

        请看at this document - 搜索词Jenkins 的上下文路径在你的 Apache 和 Jenkins 之间必须相同。我希望这会有所帮助。

        【讨论】:

        • 我没有使用 apache。我可能会使用 nginx,而且我知道上下文路径必须相同。但在将 jenkins 隐藏在 nginx 后面之前,我想确保可以从 ip:port/jenkins 访问 jenkins。然后我会从 nginx 反向代理这个。
        • 在我看到的设置中,当 Jenkins 启动时,JENKINS_ARGS 被附加到 DAEMON_ARGS 中。尝试将 --prefix 直接放入您的 DAEMON_ARGS。
        • 用 DAEMON_ARGS=" server --port=4001 --prefix=/jenkins --home=/var/jenkins --daemon" 试过了,没用。
        • 只是为了确保涵盖所有内容:您确实重新启动了服务(sudo service jenkins restart),不是吗?
        • 是的。我已经尝试过重新启动和杀死它。然后我再次启动 jenkins,它显示“等到 jenkins 准备好”或类似的东西
        猜你喜欢
        • 2021-08-13
        • 1970-01-01
        • 2013-01-10
        • 1970-01-01
        • 1970-01-01
        • 2019-05-02
        • 2020-07-09
        • 2016-08-28
        • 1970-01-01
        相关资源
        最近更新 更多