【问题标题】:Configure Access-Control-Allow-Origin for monit为 monit 配置 Access-Control-Allow-Origin
【发布时间】:2015-05-27 16:21:49
【问题描述】:

我正在尝试从 monit 中获取 json 数据并将其显示在状态页面上以供管理人员查看少数进程的当前状态。此信息将显示在同一台机器上运行的 Confluence 中,但由于 Confluence (apache) 和 monit 运行在不同的端口上,因此它被认为是跨域的。 我知道我可以编写一个服务器端进程来提供这些数据,但这似乎有点矫枉过正,实际上需要更长的时间来设置monit :) 最简单的解决方案是配置 monit 的标头 (Access-Control-Allow-Origin) 以允许其他服务器。有谁知道如何做到这一点?我怀疑有一种方法,因为 M/Monit 会遇到同样的问题。我在“httpd...allow”行上尝试了一些盲目尝试,但它抱怨带有 x.x.x.x:port 的语法或在该位置使用关键字“port”。

【问题讨论】:

    标签: monit


    【解决方案1】:

    好的...要回答我自己的问题(有点)。 首先,我想我可能问错了问题。我不处理很多跨域问题。对此感到抱歉。

    但这是我从其他服务器获取监控信息的方法:在主服务器所在的 apache 中使用代理非常简单:

    ProxyPass /monit http://localhost:2812
    ProxyPassReverse /monit http://mainserver/monit
    
    ProxyPass /monit2 http://server2:2812
    ProxyPassReverse /monit2 http://mainserver/monit2
    

    我对每台服务器都执行了此操作,并测试了我可以访问 monit Web 界面或 _status?format=json 子页面。我现在可以在我们的主页上使用 ajax 调用它们。

    这还有一个好处是我可以将监控访问控制锁定到主服务器,但信息会显示在更明显的页面上。 :)

    【讨论】:

      【解决方案2】:

      我认为您不需要代理来仅显示 monit 的 api 或 http 信息。这取决于您如何配置网络和 dns。如果您只想使用 localhost,那么这可能是必要的。但是,monit 确实可以在其自己的配置 rc 文件中使用允许指令来使用全局主机 ip 访问

      【讨论】:

        猜你喜欢
        • 2017-06-15
        • 2016-09-30
        • 2015-06-17
        • 2017-12-29
        • 2019-02-07
        • 2013-09-09
        • 2014-08-14
        • 2015-12-10
        相关资源
        最近更新 更多