----- Original Message ----- From: "Joshua Slive" <joshua@xxxxxxxx>
To: <users@xxxxxxxxxxxxxxxx> Sent: Friday, September 22, 2006 4:15 PM Subject: Re: [users@httpd] Apache with ExtFilterDefine problem
On 9/22/06, host.md <oleg@xxxxxxxxxxx> wrote:Hi to all. I am running a site with free hosting on apache. Everything works fine..until some of our free users, by mistake runs some infinite loops. The current configuration of the apache is based on ExtFilterOutput, which sendsall the output to a script in perl that adds some banners. The problem iswhen users by mistake, generate Gigs of output, back to client, our serverhangs. The perl script takes all the output that apache sends via <STDIN> and adds, as i said, the banner: #perl output filter $stdin=<STDIN>."some_banner_path_here"; print $stdin; What happends here is that STDIN becomes very big, and perl script hangs, growings very large, in memory. How can i restrict apache not to generatethat much information back to the client? I found nothing in internet about that. Maybe there are some other methods of adding some ads to html pages???If for you need some more details please tell me.Simple solution: have your script count bytes and abort when it reaches a certain number. Even simpler solution: write your script in such a way that it isn't buffering the entire request before sending it along. More stable and performant solution: In place of mod_ext_filter, use an apache module that doesn't involve forking a perl script to mangle each request. Examples of modules that can do this include mod_publisher, mod_perl, mod_php, etc. Joshua.
I took a look at mod_perl filters, and it is obvious what i need. It has a simple interface to the Apache API , and lots of example, how to use it.
Thanks a lot Joshua!Oleg R.
--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx