HTTP Probe ACE Modules

Unanswered Question

Team,

Below is a snapshot of the HTTP Probe that I currently have confgured:

probe http http-probe

interval 10

passdetect interval 3

request method head

expect status 200 200

My question is, what if one of my reservers has a bad URL but the subsystem in IIS is responding with a 200 status? How do I protect myself from this situation and have the ACE module take this rserver out of rotation?

Thank you,

John...

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 4 (2 ratings)
Loading.
Syed Iftekhar Ahmed Thu, 02/26/2009 - 10:54

With your defined probe, you are simply looking for the availability of root url.

Instead you should probe an application specific URL.This way ACE will only declare a server active if that particular URL gives 200 ok to ACE.

Syed Iftekhar Ahmed

Syed Iftekhar Ahmed Thu, 02/26/2009 - 22:09

For example instead of root url you can probe a specific url pointing to the app like

probe http http-probe

interval 10

passdetect interval 3

request method head

request method get url /testpage.html

expect status 200 200

Where tespage.html is the app specific page.

There could also be situations where requirement would be to keep track of the backend server along with the front end/Web server and mark the Web server down if a backend server (like application /database server is down).

This can be achieved by if APP can be tweaked by developers such that it make calls to backend servers (like DB server) and populate a page with some value from the database. In http probe you can look for that value and if that value doesnt exist then you can mark the server down.

for e.g in following example if ACE will mark the server down if it gets 200 ok but doesnt get "DBISUP" in response

probe http http-probe

interval 10

passdetect interval 3

request method head

request method get url /checkdbpage.html

expect status 200 200

expect regex DBISUP

HTH

Syed Iftekhar Ahmed

acharyr123 Thu, 02/26/2009 - 22:27

Hi,

To check the URL plz do the following:

probe http HTTP-Probe

port 8000

interval 2

faildetect 2

passdetect interval 15

request method head url /OA_HTML/AppsLocalLogin.jsp

expect status 200 210

expect status 302 302

open 1

Plz rate if it helps

acharyr123 Fri, 02/27/2009 - 09:15

Status code 302 (this info you will get from the application guy) or if you do " sh probe detail"--it will give the status code whih needs to be enabled...

Syed Iftekhar Ahmed Fri, 02/27/2009 - 10:57

"expect status x y" command in an HTTP probe tells ACE to consider the the probe result a success if the http response from server carries any response code between x & Y.

For a successfull page access you get response code 200 from server. You get a 302 from server when it is configured to redirect the request to a new location.

You must have seen 404 many times.This response code tell you that the URI you tried to accessed doesnt exist on the server.

For a complete list of response code

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Syed Iftekhar Ahmed

Team,

Thank you for all your very good responses. I just received the following question from one of my Web Engineers:

I was more concerned with "in-flight" requests that happen before a server is marked down and start to make their way back to the client.

I'm not sure about the BigIP, however, the Netscaler has a feature (since these boxes are basically reverse proxies) where you can inspect outbound traffic from the real to the client and when it detects a header that has a predefined error code (400, 500 etc) it will rewrite the URL and send it to the other real server that is up.

I'm not sure what he is asking me, any assistance will be greatly appreciated.

John...

I attached a visio of what we are being asked to do. Let me attempt to describe the scenario:

1) Client sends an HTTP request my URL http://www.test.com

2) The ACE module receives that request and sends it to RSERVER-1

3) RSERVER-1 is down but due to the HTTP probe timer, the server is not yet out of rotation.

4) The ACE module intercepts the packet that was returned from RSERVER-1 sees a return code of 404 or 500+ rewrites the packet and sends it to RSERVER-2

Is the above scenario possible?

John...

Attachment: 
Syed Iftekhar Ahmed Fri, 02/27/2009 - 15:35

Its do-able using "Inband HTTP return code checking". With this in place you can configure ACE to mark a server down if ACE notices X number of 404s (or any response code you want to check) from a particular server.

For more details visit

http://www.cisco.com/en/US/docs/interfaces_modules/services_modules/ace/v3.00_A2/configuration/slb/guide/rsfarms.html#wp1014164

Syed Iftekhar Ahmed

Actions

This Discussion