【发布时间】:2020-10-16 23:01:14
【问题描述】:
我在 Ubuntu 20.04.1 上使用 Jenkins 和 Nginx 作为反向代理时遇到了非常简单的问题,我无法弄清楚它为什么会这样做。
如果我通过 UI(例如在 /configure 页面上)对任何配置文件(*.xml,包括作业)进行任何类型的更改(添加、删除、编辑),更改将正确保存到磁盘(实际的 .xml 文件更改)但 UI 不会更新,除非我手动刷新页面、重新启动 Jenkins 或使用“从磁盘重新加载配置”按钮。
我希望 Jenkins 会在我按下保存后立即更新 UI 以反映我的更改,但 它不会。如果我在进行更改并保存后再次访问配置,UI 会显示之前的内容,即使磁盘上的 .xml 文件确实被修改了。
希望有人遇到过类似的问题,或者至少可以以某种方式提供帮助。
注意:当 Nginx 不用作 HTTPS 的反向代理时,Jenkins 会按预期工作。只有在使用 Nginx 时才会出现此问题。
谢谢
【问题讨论】:
-
这是预期的行为,这就是“从磁盘重新加载配置”按钮存在的原因。 Jenkins 在内存中拥有配置的当前状态,并且不会主动监视配置文件的更改以重新加载它们。有一个插件可以做你想做的事情的可能性很小。一般来说,无论如何还是使用 UI 更为可取,因为编辑原始 xml 很麻烦,而且并不能真正提供对系统的更多控制。
-
@smelm 即使有工作配置?我看不到不自动重新加载配置以反映您的更改的优势,以便您知道实际进行了更改。每次进行更改时强制用户必须单击按钮重新加载配置似乎很荒谬。
-
就像我说的,它可能不打算以这种方式使用。 Jenkins 更倾向于通过 UI 或代码(使用管道和 jobDSL)进行配置。 Stackoverflow 可能不是您的问题所在,如果您对此有强烈的感觉,请考虑创建一个功能请求。
-
不确定您是否错误地阅读了这个问题,或者因为我刚刚发现 Jenkins 确实像我所说的那样工作,但只有在我们的 Nginx 反向代理没有被使用时。当使用 Nginx 代理访问 Jenkins 时,UI 不会反映所做的更改,直到手动刷新页面。
标签: linux ubuntu user-interface nginx jenkins