|Syntactic Confectionery Delight|
Develop a forward HTTP proxy serverby josef (Acolyte)
|on Nov 04, 2013 at 16:27 UTC||Need Help??|
josef has asked for the
wisdom of the Perl Monks concerning the following question:
I find very interesting to develop a flexible and powerful forward HTTP proxy server in Perl. I imagine that is possible to write a HTTP proxy server to support 400-1000 requests/second.
For example the very used proxy Squid use one non-blocking socket with a big select() poll. For my intention I tend to use only pre-forking or polling (select, epoll, kqueue), due to easy development. I’m not clear which technique is better suited. Which CPAN modules are suitable? Which performance can I expect? Do I need a blocking or a non-blocking socket? How scale?
I have tested some modules: forks, AnyEvent, EV, IO::Socket, IO::Async, IO::Select, IO::Poll, HTTP::Daemon, HTTP:Proxy, Net::Server, LWP::UserAgent, Furl and other, but I need a direction.
Google can’t help my much; one running proxy server using pre-forking was published by Randal L. Schwart (http://www.stonehenge.com/merlyn/WebTechniques/col34.html) 15 years ago.