30-Sep-2021 02:05
Hi, I'm trying to setup a virtual server that will accept requests from some internal clients and immediately return a 200 response and also fire the request at some external servers through an irule. We don't care about the response from the external server, the most important thing is that the client gets a quick 200 OK response so they are not interrupted.
I have a simple irule doing a dns lookup and forwarding the request to the external servers, but I'm struggling where to set a response that would prematurely go to the client.
Is this even possible?
01-Oct-2021 01:09
Hi Paul, have you seen the "HTTP :: respond" statement yet?
It doesn't exactly do everything you ask but it could be a starting point.
01-Oct-2021 03:48
Hi, yes I've tried http::respond clientside at event HTTP_REQUEST_SEND, but the issue is the script stops & the request does not seem to be sent to the external server.
01-Oct-2021 04:28
I saw some irules that generated a new request using the "connect" and "send" commands
you can prepend them to the HTTP command: respond
https://clouddocs.f5.com/api/irules/SIDEBAND.html
04-Oct-2021 08:35
Hi, the TCP::respond wasn't working, I've tried sideband, but whatever I do the connection to the client terminates before the request is sent to the server.
The request to the external server is https, so I have had to put another virtual server in the route as it seems sideband connections have to be non ssl. (I don't have irules LX setup).
Client req https -> virtual -> sideband http -> virtual -> https external server
It seems impossible to do an async fire and forget request!