Link to home
Start Free TrialLog in
Avatar of JesSadOldGoth
JesSadOldGoth

asked on

Apache - Application Pool Equivalent

Hi Folks,

We have an Apache server serving multiple web-sites and some of these are causing issues, failing and bringing down all the sites on the server.

We are trying to isolate the problematic sites and separate out those we know are working.

In IIS I would use Application Pools to keep these sites separate so that failure doesn't propagate through; is there an equivalent way of doing this within Apache?  

Thanks for your help.

Jes
ASKER CERTIFIED SOLUTION
Avatar of Steve Bink
Steve Bink
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of JesSadOldGoth
JesSadOldGoth

ASKER

Hi Steve,

Thanks for the answer, I'll pass it on.  I'll accept or otherwise afterwards, but appreciate the response regardless.

Later,

Jes
Are you getting error messages?
I've requested that this question be closed as follows:

Accepted answer: 0 points for JesSadOldGoth's comment #a40986467

for the following reason:

Thanks for this answer, it seems to have done the job.
Thanks for this Steve, it's done the job.
There is such concept in apache contrary to what was told before.
suexec, mod_fcgid or both (how do you think shared hosting works?)
then around that you use cgroups to configure resources for system users like you did with application pools.
@gheist: can you provide any links to information about your approach?  AFAIK, using FCGI on Apache is not quite the direct parallel to application pools on IIS.  I'd like to see how to the two compare.
Somewhere in fcgid doc around php (yes, it does not sort static file serving by "pool")
The specific question I have is that FCGI applications are global to the web service, while application pools in IIS are specifically limited to members of the pool.  In terms of Python, for example, this means the application level must take care of threaded environments when using mod_fcgi, where an IIS application pool would handle threading transparently.

Also, in the context of this question, a failure in the CGI parent application would be felt globally as well, since everything is working off the single instance.

Do I understand this correctly?
fcgi pools are per command + per virtualhost, 500 processes default in each POOL.
sorry, i cannot provide you with MSDN article, MMC snapin and ADMX file to understand that better.
I was basing my conclusions on a note I saw at http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html, under FastCgiServer:

Note: Using FastCgiServer within a VirtualHost does not necessarily limited access to that host. If filename is accessible via other virtual hosts, they too can leverage the same definition.
What your reference has to do with mod_fcgid by apache software foundation?
Ah, true.  That's what happens when you stay up much too late.  :)

In the Apache mod_fcgid docs:
The pool of fcgid-invoked programs is shared between all httpd workers.

So, while it can be configured to run more than one process per application based on load, there is no way to segregate those loads logically.  That means that a failure in a mod_fcgid application can affect not just the httpd thread causing the failure, but any thread currently using that instance.

This is addressed in IIS by using application pools.  Each application pool can launch its own FastCGI process, keeping it isolated.  You brought up shared hosting previously... my previous hosting employer offered distinct levels of shared hosting on Windows - one with a shared application pool (i.e., like the nix Apache model), or a dedicated pool.
All apache workers serve all sites, and they all use same per-virtualhost fcgid pools
>>>  they all use same per-virtualhost fcgid pools

I think that's the core of the issue - the pools are per server, not per virtual host.  It does not appear that Apache will create separate instances of an fcgi app for different hosts, or allow a virtual host to select a particular "pool" to use.
Sam "defect" as IIS. Only that IIS does not make resource control so obvious.