2016-07-26 3 views
0

У меня есть два сервера, каждый из которых запускает один сервер приложений Wildfly с одной услугой, доступной через https. Служба обслуживает шифрование https. Перед двумя серверами у меня есть HAProxy как балансировщик нагрузки в режиме tcp, чтобы передать трафик ssl через две службы.Проверка работоспособности HAProxy в режиме tcp по https 404 status status

Проверка работоспособности HAProxy проверяет только, находится ли сервер в сети, а не служба. Если служба не работает Возврат Wildfly:

<html><head><title>Error</title></head><body>404 - Not Found</body></html> 

, который HAProxy интерпретирует как здоровый.

HAProxy конфигурации:

global 
    maxconn 2000 

defaults 
    log  global 
    mode http 
    option dontlognull 
    retries 3 
    option redispatch 
    timeout connect 5000 
    timeout client 10000 
    timeout server 10000 

listen backend 
    bind *:8443 
    mode tcp 
    balance roundrobin 
    option httpclose 
    server backend1 wildfly:8443 check 
    server backend2 xxx.xxx.xxx.xxx:8443 check 

Как я могу сделать HAProxy понять, что 404 - Not Found является не здоровым.

ответ

1

Две линии сделал трюк:

  1. option httpchk /server
    • httpchk говорит HAProxy послать запрос HTTP и проверить состояние ответа
    • /server Задает URI/субдомен моей службы
  2. server backend1 wildfly:8443 check check-ssl verify none
    • check-ssl говорит HAProxy проверить через HTTPS вместо HTTP
    • verify none говорит HAProxy доверять сертификату SSL службы (Alternativly вы можете указать файл .pem)

Полный HAproxy конфигурации :

global 
    maxconn 2000 

defaults 
    log  global 
    mode http 
    option dontlognull 
    retries 3 
    option redispatch 
    timeout connect 5000 
    timeout client 10000 
    timeout server 10000 

listen backend 
    bind *:8443 
    mode tcp 
    balance roundrobin 
    option httpchk /server 
    server backend1 xxx.xxx.xxx.xxx:8443 check check-ssl verify none 
    server backend2 xxx.xxx.xxx.xxx:8443 check check-ssl verify none