Monit仅对HTTPS网站使用HTTP

时间:2016-04-27 16:14:54

标签: apache http https centos7 monit

我试图通过Monit监控本地Apache实例上的VHost。同一个域同时接受 http https 流量,因此我想监控两者。

此外,域解析为的IP将转到服务器,该服务器负载平衡当前Apache实例与运行Apache的另一台服务器之间的流量。我需要Monit来监控本地实例,我希望避免在 / etc / hosts 文件中添加任何记录,所以我认为Monits配置设置{{ 1}}就足够了,我认为它是(仅监控 localhost ,但将标头with http headers []设置为vhost域)。

无论如何,我似乎遇到的主要问题是,即使我将Monit配置为通过 http https 协议监控主机,它也会监控两台主机只需 http ,但使用 https 协议将端口设置为443。

Apache的Monit配置文件是:

Host

这是该支票的Monit状态:

check process httpd with pidfile /var/run/httpd/httpd.pid
    start program = "/bin/systemctl restart httpd.service" with timeout 60 seconds
    stop program  = "/bin/systemctl stop httpd.service"

check host localhost with address localhost
    if failed
        port 80
        protocol http
        with http headers [Host: www.domain.com, Cache-Control: no-cache]
        and request / with content = "www.domain.com"
            then restart
    if failed
        port 443
        protocol https
        with http headers [Host: www.domain.com, Cache-Control: no-cache]
        and request / with content = "www.domain.com"
            then restart
    if 5 restarts within 5 cycles
        then timeout

因此,我很清楚https是失败的,因为它仍在尝试使用端口HTTP,即使我在配置中有[root@server enabled-monitors]# monit status localhost The Monit daemon 5.14 uptime: 14m Remote Host 'localhost' status Connection failed monitoring status Monitored port response time FAILED to [localhost]:443/ type TCPSSL/IP protocol HTTP port response time 0.001s to [localhost]:80/ type TCP/IP protocol HTTP data collected Tue, 26 Apr 2016 10:44:32

非常感谢任何输入。我有一种感觉,这可能是一个错误,并且在Monit Github回购中生病了,但是我不确定它是不是我忽略的傻事。

谢谢!

1 个答案:

答案 0 :(得分:0)

这里的回复很晚,但我想我仍然会为那些偶然发现同样问题的读者发帖。

问题似乎不是Monit使用端口HTTP,尽管为HTTPS配置了检查。它始终报告状态中的HTTP协议(显示错误)。

真正的问题可能是Monit不支持SSL的SNI,因此忽略了https检查中的with http headers [Host: www.domain.com ...。因此,检查失败,因为Monit实际上正在测试https://localhost

我已向Monit开发者here提交了错误。