05-11-2009 10:21 AM
How do I create a health check for a non-standard application expecting binary requests?
I am sorry but I do have to load balance an application developed ages ago - it is a binary protocol below and not something like simple HTTP.
05-11-2009 10:42 AM
I am about to leave and therefore I am not going to post an example today but most probably tomorrow. Have a look at binary health checks in the documentation. Search for the string "content-check-carray" in the health check chapter of the Server Load Balancing Guide and you will find what you are looking for. An example is going to follow tomorrow.
05-12-2009 02:33 PM
Here is the example I have promised. I am using an HTTP request as an example which might look a bit strange it is the same with all other type of traffic. I am going to create an HTTP health check using the ServerIrons/ADX binary health check feature. I want to send the following string to the server:
"GET / HTTP/1.0\r\n\r\n"
which is the following talking binary:
0x47 0x45 0x54 0x20 0x2f 0x20 0x48 0x54 0x54 0x50 0x2f 0x31 0x2e 0x30 0x0d 0x0a 0x0d 0x0a
and I do expect:
"HTTP/1.0 200 OK\r\n"
0x48 0x54 0x54 0x50 0x2f 0x31 0x2e 0x30 0x20 0x32 0x30 0x30 0x20 0x4f 0x4b 0x0d 0x0a
Putting that into a binary health check for an example real server would look like the following in the configuration:
server real test 10.176.0.81
port 80 content-check-carray m1
port 80 content-check-carray send "0x47,0x45,0x54,0x20,0x2f,0x20,0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x0d,0x0a,0x0d,0x0a"
http match-list m1
up simple 0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d,0x0a
I hope I have not made any typo - this is not tested and I have generated it offline. Please have a look at the documentation on top of this. It is pretty easy if you know what to do.