503 service unvailable
3 TopicsSharepoint health monitors
Hey Everyone, I am currently load balancing two servers in my SharePoint setup. I am currently using the default "http" health monitor. Sometimes in the morning, one of the servers goes into an error and responds back with a 503 error. The F5 still sees the server as up and 50% of the people get the error page. I am looking for a health monitor that checks the ICMP of the server and also checks to see is the server responds back with a 503 error. If the server responds back with a 503 error I need the F5 not to send traffic to the server. In a perfect world I would also love to receive an email when this server shows a 503 response. I don't play with health monitors too often and was wondering if anyone out there could help me out. Cheers!1.1KViews0likes10Commentscurl irule behavior
I have an irule that is as follows: when HTTP_REQUEST { set var1 [getfield [HTTP::uri] "/" 2 ] log local0. "$var1" HTTP::header replace "Host" "https://$var1.host.domain.com:9090" log local0. "[HTTP::host]" HTTP::uri [substr [HTTP::uri] [expr ([string length $var1 ] + 1 )]] log local0. "Host and URI modified to: [HTTP::host][HTTP::uri]" } In the log this appears to be working, : https://var1.host.domain.com: With the following curl command: curl -k -v -H 'Authorization:HCP ' https://host.domain.com:9090/path1/var1/path2/path3 In Curl output I'm getting the following: Host: host.domain.com ( would expect to see var1.host.domain.com ) < HTTP/1.1 503 Service Unavailable * Connection 0 to host host.domain.com left intact599Views0likes3CommentsReselct based on http response code 503
Below is the irule I am using when CLIENT_ACCEPTED { set retries 0 set default_pool pool-name } when HTTP_REQUEST { if { [HTTP::method] eq "GET" && $retries == 0 }{ set request_headers [HTTP::request] log local0. "Saving HTTP request headers: $request_headers" } } when LB_SELECTED { if { $retries > 0 } { LB::reselect pool $default_pool } } when HTTP_RESPONSE { if { [HTTP::status] starts_with "503" } { log local0. "503 error caught: retry $retries out of [active_members $default_pool]" if { $retries < [active_members $default_pool] } { HTTP::retry $request_headers return } } set retries 0 } Below are the things I noticed. Client side is hung with no responses. F5 is not giving the request to other working members which doesn’t have a 503. So we can alter the irule to send to other members in the next retry itself instead of sending to existing node. We are having a VIP with FQDN nodes with IP based persistence227Views0likes0Comments