【问题标题】:Show maintenance page during Wildfly startup在 Wildfly 启动期间显示维护页面
【发布时间】:2021-05-19 16:28:53
【问题描述】:

我有一个 WildFly 安装,由于部署的数量和规模,它在启动过程中需要一些时间。所以我想在完整的应用程序准备好之前显示一个维护页面。

在以前的 WildFly 版本之一中,我使用 default-web-module 作为配置选项并注册了一个小的 WAR 文件,该文件立即可见,并在大型应用程序可用时立即被替换。

不幸的是,WildFly 22 不再可能实现这一点,而是在部署真正的根应用程序后立即引发异常:

org.jboss.msc.service.DuplicateServiceException: Service jboss.undertow.deployment.default-server.default-host./.UndertowDeploymentInfoService is already registered

我知道只要 WildFly 返回 503 错误,我就可以在 WildFly 前面放置一个小型 Web 服务器(nginx 或类似服务器)来返回我的维护网页。唯一阻止这种情况发生的事实是,维护页面仍然包含一些我需要在 nginx 上模拟的逻辑。

是否有任何其他选项可以确保在其他应用程序仍在启动时立即交付我的维护页面?

【问题讨论】:

    标签: wildfly maintenance-mode


    【解决方案1】:

    如果我确实正确理解了您的问题,您想要的是在服务器关闭时显示状态 503 的错误页面或在服务器替换部署时显示 404 的错误页面。
    但是对于您的环境,在应用服务器前面没有 Web 服务器,我们只需要考虑 404 的情况。
    503是在应用服务器宕机时用于web服务器,因此503服务不可用。

    首先:控制台 -> 配置选项卡

    前往 Wildfly 的管理控制台。并且取决于您使用的模式(域或独立),内部配置选项卡会有所不同。

    第二:配置->网页->过滤器

    如果使用域模式,请选择您正在使用的配置文件。 然后前往子系统 -> Web(Undertow) -> 过滤器 -> 点击“查看”。

    • 我在本地计算机上使用域模式配置文件“完整”,因此,这就是我的控制台的样子。 Path_to_Filters

    第三:在Filters中选择Error page tab

    像这样设置代码和路径,其中代码是您希望静态页面显示的状态代码。 path 是静态页面的文件位置。 setPathAndCode

    您可以查看 Wildfly doc 了解错误页面设置。

    第四:配置选项卡 -> Web(Undertow) -> 服务器 -> 默认服务器(或你使用的)

    HeadToServer

    第五:选择服务器内的主机选项卡

    选择“主机”选项卡,然后单击添加过滤器按钮。
    选择我们刚刚在第三步中设置的过滤器,并将谓词设置为 true。

    • 我不确定如果没有设置为 true 或留空会有什么影响,因为它不是必填字段。

    最后:重新启动服务器以使您的配置正常工作。
    现在,您应该能够在取消部署或重新部署应用程序时看到显示的静态页面。

    抱歉,因为我之前没有回答任何问题,所以没有以太好的答案格式回答。

    ** 您也可以像这样设置您的standalone.xml 或domain.xml 以获得相同的结果。 setXmlFile

    【讨论】:

    • 你没有完全正确地理解我的用例。我想在启动期间显示维护页面。我可以使用 default-response-codequeue-requests-on-start="false" 返回 503。不幸的是,您的解决方案在这里不起作用,因为在启动期间没有应用过滤器 - 立即返回默认响应代码。对此负责的是org.wildfly.extension.undertow.Host,它先安装默认响应处理程序。关于您的答案格式:永远不要将文本包含为图像,只需“按原样”包含standalone.xml 的相关部分并删除 UI 描述。
    • @TobiasLiefe 是的,很抱歉我误解了你的问题。我会继续努力的。
    • 继续努力。你的想法不错 - 但不幸的是不适用于我的场景。
    猜你喜欢
    • 2014-08-20
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2010-09-17
    • 1970-01-01
    相关资源
    最近更新 更多