2

Я пытаюсь контролировать VHost на локальном экземпляре Apache через Monit. Один и тот же домен принимает трафик http и https , поэтому я хотел контролировать оба.

Кроме того, IP-адрес, к которому разрешен домен, передается на сервер, который загружает баланс трафика между текущим экземпляром Apache и другим сервером, на котором работает Apache. Мне нужен Monit для мониторинга локального экземпляра, и я надеялся избежать добавления каких-либо записей в файл /etc/hosts, поэтому я подумал, что настройки конфигурации Monits with http headers [] будет достаточно, и я думаю, что это так (просто мониторинг localhost, но установив заголовки Host для домена vhost).

В любом случае, главная проблема, с которой я, похоже, сталкиваюсь, заключается в том, что, хотя я и настраиваю Monit для мониторинга хоста по протоколам http и https, он контролирует оба хоста только по протоколу http, однако порт настроен на 443 для того, который мне нужно использовать. протокол https .

Файл конфигурации Monit для Apache:

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

А вот статус Monit для этой проверки:

[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

Так что для меня совершенно очевидно, что https дает сбой, потому что он все еще пытается использовать порт HTTP, хотя у меня есть protocol https в конфигурации.

Любой вклад будет высоко ценится. У меня такое чувство, что это может быть ошибкой, и я плохо создаю проблему в репозитории Monit Github, но я не хочу убедиться, что это не что-то глупое, что я упустил из виду.

Спасибо!

1 ответ1

0

Заголовок здесь не работает, поэтому я использую только простую проверку:

...
  if failed host www.host.com port 80 protocol http
    and request "/index.html"
    with timeout 25 seconds
    for 4 times within 5 cycles
    then restart
  if failed host www.host.com port 443 protocol https
    and request "/index.html"
    with timeout 25 seconds
    for 4 times within 5 cycles
    then restart
...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .