When working with mobile clients, it is often necessary to have multi-second delays when transmitting HTTP requests. If you serve pages or services from the Apache pre-program, child processes will be bound within seconds, serving one mobile client, even if your application server logic runs in 5 ms. I am looking for an HTTP server, balancer or proxy server that supports the following:
The request arrives at the proxy server. The proxy server starts buffering in RAM or on disk a request, including the headers and POST / PUT bodies. The proxy does not open a connection to the server server. This is probably the most important part.
The proxy server stops query buffering when:
- Size limit reached (say 4 KB) or
- Request was received in full, headers and body
Only now, with (part) of the request in memory, the connection is opened to the backend and the request is relayed.
The backend returns a response. Again, the proxy server starts buffering immediately (to a more generous size, say 64 KB.)
Since the proxy server has a sufficiently large buffer, the backend response is completely stored on the proxy server for half a second, and the server process / thread can process more requests. The backend connection closes immediately.
A proxy server sends a response to a mobile client as fast or slow as it does, without connecting to a server connecting resources.
, 4-6 Squid, nginx, , 1-3 ( ). : - -, , - ? , Apache config-fu, ? , , Squid, , , ?
(Siderant: nginx, POST-, . , 50- POSTs... )