Forum Discussion

paul_dcc's avatar
paul_dcc
Icon for Nimbostratus rankNimbostratus
Nov 17, 2009

Basic HTTPS monitor

I’m trying to setup a basic HTTPS health monitor for a web portal running SAP. I’ve not been using F5 Big-ip for long. Below is the error from the SAP web portal ;-)

 

 

 

1.5_002219AB9804001500000001000047E00004788E502F7CE21258452532840com.sap.engine.services.httpserver.dispatchercom.sap.engine.services.httpserver.dispatcherSAPEngine_System_Thread[impl:6]_4300ErrorPlainError in parsing the HTTP request for load balancing. The request is:

 

 

>.

 

com.sap.engine.services.httpserver.exceptions.ParseException: Illegal request line. [HTTP version] is not found.

 

at com.sap.engine.services.httpserver.dispatcher.loadbalance.HttpLoadbalance.getAliasLength(HttpLoadbalance.java:536)

 

at com.sap.engine.services.httpserver.dispatcher.loadbalance.HttpLoadbalance.getServerIdFromRequest(HttpLoadbalance.java:210)

 

at com.sap.engine.services.httpserver.dispatcher.Processor.setServerId(Processor.java:1219)

 

at com.sap.engine.services.httpserver.dispatcher.Processor.parseBodyCommand(Processor.java:1001)

 

at com.sap.engine.services.httpserver.dispatcher.Processor.parseRequest(Processor.java:397)

 

at com.sap.engine.core.manipulator.TCPRunnableConnection.sleepRead(TCPRunnableConnection.java:837)

 

at com.sap.engine.core.manipulator.TCPRunnableConnection$ReadThread.run(TCPRunnableConnection.java:1179)

 

at com.sap.engine.frame.core.thread.Task.run(Task.java:64)

 

at com.sap.engine.core.thread.impl6.SingleThread.execute(SingleThread.java:80)

 

at com.sap.engine.core.thread.impl6.SingleThread.run(SingleThread.java:150)

 

 

Any help would be very much appreciated

 

 

Paul.

4 Replies

  • GET / is an HTTP 0.9 request which the web app might not support. The error indicates HTTP version is not found, so this does seem likely. Can you try testing using this send string:

     

     

    GET / HTTP/1.0\r\nHost: \r\nConnection: close

     

     

    For v9.4+ you don't need to append any extra \r\n's to the send string. For previous versions, you can check SOL2167:

     

     

    SOL2167: Constructing HTTP requests for use with the HTTP or HTTPS application health monitor

     

    https://support.f5.com/kb/en-us/solutions/public/2000/100/sol2167.html

     

     

    Once that is working, it would be good to configure a receive string to ensure the server responds with specific content. You could try '200 OK' to start with.

     

     

    Aaron
  • That fixed the get problem

     

     

    GET / HTTP/1.0\r\nHost:des.dorsetcc.local/irj/portal \r\nConnection: close

     

     

    But I now need to match on the Receive String. On the page that comes back would be "Welcome" within the text. How would I do the Receive String ?

     

     

     

     

  • You can try '200 OK' if the page returns a 200 response:

     

     

    curl -I www.google.co.uk

     

     

    HTTP/1.1 200 OK

     

    Date: Tue, 17 Nov 2009 11:08:51 GMT

     

    Expires: -1

     

    Cache-Control: private, max-age=0

     

    Content-Type: text/html; charset=ISO-8859-1

     

     

    Else, you could check for an HTTP 1.0 or 1.1 200 or 302 response:

     

     

    HTTP/1\.(0|1) (200|302)

     

     

    Aaron