Re: siege failing and so on

Leen Besselink <[email protected]> Mon, 13 Oct 2003 00:11:10 +0200 (CEST)
Newsgroups gmane.comp.apache.metuxmpm
Message-ID <[email protected]>
-                                                 [email protected]
---------------------------------------------------------------------

Problems trying to solve:
- to many processes/threads
- socket-security
- keep-alive
- https (ssl) handling
- good seperation of vhost-processes

If it were up to me it'd create one process which works with a
non-blocking select which handles all incoming requests, parses the
headers, selecting a child (maybe telling the master-process to start one,
if it hasn't yet, that would be nice), passing the request along over a
Unix domain-socket and then keeping an eye on where the body ends.

ssl can be handled two ways, when something connects to a ssl-port, you
know which address to the outside world it is, so just pass it along to
the right vhost. Or you can unencrypt it in the select loop (with a
seperate thread maybe ?) and the pass it along unencrypted.

pros:
- solves all above problems, as far as I can see it.

(it should have good performance too, it's a lot like serving static
content and it has been shown this is one way of doing it very fast)

con:
- how to handle IP-addresses for the logs

I guess it can be fairly easily solved by adding it to the headers (just
like you'd do with a reverse-proxy or passing along a request to a servlet
engine ?).

Maybe there was a good reason not to use this model, I forgot if it's true
(then I apologize), but it still seemed like a good idea to me. And I just
hope I was being sensible and it was usefull to the discussion.

PS If your worried of performance degration with a lot of connections,
then Linux has an extension which gives you an array which tells you what
connections have data (instead of needing to check them all).

_____________________________________
New things are always on the horizon.