Ok I miss understood you,
option httpchk GET /healthcheck
and
http-check expect status 200
are in different row,
but it don't work neither.

>> Hi,
>> 
>> On Fri, Feb 03, Antonio Trujillo Carmona wrote:
>>> All this go fine, but balanced A don't know state of virtual machine but
>>> state of haproxy in server, due this if we stop VM1 and we see state in
>>> balanced A we see VM is OK, that is because Balanced A see then state of
>>> haproxy in server 1 not VM1 status.
>>> 
>>> So my question:
>>> In this scenarios:
>>>                                               |S1       [VM 1]|
>>>                        |Hap------      |      
>>> |[balA (haproxy)]|     |         [VM 3]|
>>> |    keepalived  |-----
>>> |[balB (haproxy)]|     |S2     2 [VM 2]|
>>>                        |Hap------
>>>                        |         [VM 4]|
>>> How I can pass state of VM to haproxy in balanced A and B?.
>> 
>> 
>> If I undestand your question correctly you can use monitor-uri and
>> monitor-fail on S1/S2 haproxy. And healthcheck the monitor-uri from
>> balA/balB.
>> (http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4-monitor-uri
>> http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#nbsrv)
>> 
>> So in S1/S2 haproxy:
>> monitor-uri /healthcheck
>> monitor-fail if { nbsrv(your_backend_name) lt 1 }
>> 
>> And in balA/balB:
>> option httpchk GET /healthcheck ...
>> http-check expect status 200
>> 
>> (http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4.2-option%20httpchk)
>> 
>> -Jarno
> Ok I can understand the first part for S1/S2, but not the part for
> balA/balB.
> option httpchk GET /healthcheck http-check expect status 200
> is possible make a http-check within tcp conection?
> We try (prior to ask) with
> option httpchk GET /testwebwls/check
> (we make a processes who return ok and work fine in tho no SSL
> structure), but it don't work, I guess it is due to certificate issue,
> certificate name is "aplicaciones", aplicaciones is pointer by DNS to
> S1/S2 haproxy, S1/S2 try to connect to "10.105.x.x:1443" and certificate
> is not valid for server named "10.105.x.x" only for server named
> "aplicaciones"
> With your proposal in the statics page we see all server down with "LT7RSP"
> 
> My configuration filed are:
> 
> In BalA/BalB
> # haproxy -v
> HA-Proxy version 1.5.18 2016/05/10
> # cat /etc/haproxy/haproxy
> 
> #########################################################
> #           Fichero configuracion del HAPROXY
> #########################################################
> global
>       log 127.0.0.1 local0 debug
>         chroot /var/lib/haproxy
>         user haproxy
>         group haproxy
>         daemon
>       node BALANCEADOR-PRINCIPAL
> defaults
>       log     global
>         mode    http
>         option  dontlognull
>       option httpchk
>         retries 3
>         option redispatch
>         maxconn 5000
>         timeout connect 5s
>         timeout client  15min
>         timeout server 15s
>       stats show-node
>       stats enable
> 
> frontend Jornasist
>       bind 10.107.20.9:80
>       option      httplog
>       mode http
>       tcp-request inspect-delay 5s
>       tcp-request content accept if { req_ssl_hello_type 1 }
> ##I leve this part in order to have stats
> 
> #### FRONTEND DESTINADO A SSL ##########
> 
> frontend Aplicaciones
>         bind *:443
>         mode tcp
> 
>         tcp-request inspect-delay 5s
>         tcp-request content accept if { req_ssl_hello_type 1 }
> 
>       acl aplicaciones req_ssl_sni -i aplicaciones.gra.sas.junta-andalucia.es
>       acl citrixsf req_ssl_sni -i ssiiprovincial1.gra.sas.junta-andalucia.es
>         use_backend CitrixSF-SSL if citrixsf
>       use_backend SevidoresWeblogic-12c-Balanceador-SSL
>         default_backend SevidoresWeblogic-12c-Balanceador-SSL
> 
> 
> #### BACKEND DE LOS SERVIDORES DE WEBLOGIC PRE PRODUCCION #####
> ###this part work fine without SSL
> #backend SevidoresWeblogic-12c-Balanceador
> #     mode http
> #     option  httplog
> #     stats enable
> ##            option forwardfor
> ##    cookie JSESSIONID prefix
> #     cookie ServerID insert nocache indirect
> #     option httpchk GET /testwebwls/check
> #     balance roundrobin
> 
> #        server  ServerManager1-nodo1 10.105.15.112:8001 check inter
> 3000 cookie ServerManager1-nodo1
> #        server  ServerManager2-nodo2 10.105.15.113:8002 check inter
> 3000 cookie ServerManager2-nodo2
> #        server  ServerManager3-nodo1 10.105.15.112:8003 check inter
> 3000 cookie ServerManager3-nodo1
> #        server  ServerManager4-nodo2 10.105.15.113:8004 check inter
> 3000 cookie ServerManager4-nodo2
> 
> 
> #### BACKEND DE LOS SERVIDORES DE WEBLOGIC PRE PRODUCCION SSL #####
> backend SevidoresWeblogic-12c-Balanceador-SSL
>         mode tcp
>         balance roundrobin
> 
>       # maximum SSL session ID length is 32 bytes.
>       stick-table type binary len 32 size 30k expire 30m
> 
>       acl clienthello req_ssl_hello_type 1
>       acl serverhello rep_ssl_hello_type 2
> 
>       # use tcp content accepts to detects ssl client and server hello.
>       tcp-request inspect-delay 5s
>       tcp-request content accept if clienthello
> 
>       # no timeout on response inspect delay by default.
> #     tcp-response content accept if serverhello
> 
>       stick on payload_lv(43,1) if clienthello
> 
>       # Learn on response if server hello.
> #     stick store-response payload_lv(43,1) if serverhello
> 
> # different try that not work
> #     option ssl-hello-chk
> #     option httpchk GET HTTP/1.0\r\nHost:\ /testwebwls/check
> #     option tcp-check
> 
> ######## your proposal
>       option httpchk GET /healthcheck http-check expect status 200
> ########
>       server  SSL-ServerManager1-nodo1 10.105.15.112:1443 check
>       server  SSL-ServerManager2-nodo2 10.105.15.113:2443 check
>       server  SSL-ServerManager3-nodo1 10.105.15.112:3443 check
>       server  SSL-ServerManager4-nodo2 10.105.15.113:4443 check
> 
> ...
> 
> 
> In S1/S2
> # haproxy -v
> HA-Proxy version 1.5.4 2014/09/02
> # cat /etc/haproxy/haproxy
> 
> global
>         chroot /var/lib/haproxy
>         stats timeout 30s
>         user haproxy
>         group haproxy
>         daemon
> 
>         # Default SSL material locations
>         ca-base /etc/ssl/certs
>         crt-base /etc/ssl/privado
> 
>         # Default ciphers to use on SSL-enabled listening sockets.
>         # For more information, see ciphers(1SSL).
>         ssl-default-bind-ciphers
> kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
> 
> defaults
>         mode    http
>         timeout connect 5000
>         timeout client  50000
>         timeout server  50000
> 
> frontend fsm1
>         bind *:1443 ssl crt aplicaciones.pem
>         reqadd X-Forwarded-Proto:\ https
> 
> ######## your proposal
>       monitor-uri /healthcheck
>       monitor fail if { nbsrv(bsm1) lt 1 }
> 
>         default_backend bsm1
> 
> frontend fsm3
>         bind *:3443 ssl crt aplicaciones.pem
>         reqadd X-Forwarded-Proto:\ https
> #### diferent try that don't work
> #        acl site_dead nbsrv(bsm3) eq 0
> #        tcp-request connection reject if site_dead
> ##    acl site_dead nbsrv(bsm3) lt 1
> 
> ### this monitor uri have probe work fine
> #        monitor-uri /testwebwls/check
> ###
> 
> #     monitor fail if site_dead
> 
> ######## your proposal
>       monitor-uri /healthcheck
>       monitor fail if { nbsrv(bsm3) lt 1 }
> 
>       default_backend bsm3
>       
> 
> backend bsm1
>         stats enable
>         stats hide-version
>         server sm1 127.0.0.1:8001 check
> 
> backend bsm3
>         stats enable
>         stats hide-version
>         server sm3 127.0.0.1:8003 check




---

*Antonio Trujillo Carmona*

*Técnico de redes y sistemas.*

*Subdirección de Tecnologías de la Información y Comunicaciones*

Servicio Andaluz de Salud. Consejería de Salud de la Junta de Andalucía

[email protected]_





Reply via email to