You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Filip Sneppe <fi...@gmail.com> on 2008/09/24 16:57:26 UTC

[users@httpd] Limit connections to dead backend servers with mod_proxy and mod_rewrite

Hi,

We've been using Apache 2.0 in a reverse proxy setup for a number of
years now, using both mod_proxy and
mod_rewrite to perform various types of URL rewriting. We are still
using the prefork model.

Over the past years, the number of sites that we are reverse proxying
has grown to over 100. All of them use a
VirtualHost directive. One virtual server refers to one backend server
IP address with no load balancing.
Most of them are pretty low-traffic with a few notable exceptions
(webmail, intranet, ...) that are very busy.

One of the problems we've been running into more often lately, is
that, when a backend (internal) server becomes
unavailable (eg. backend server reboot or network problem) and
requests for that site keep coming in on
the front-end Apache server, eventually all Apache child processes get
stuck waiting for a connection to
the backend server (the connections to the backend are in a SYN_SENT
state). Obviously this means that
all other sites are not being served anymore when this happens.

I am looking for an elegant way to solve this problem. Does anyone
have any recommendations ?

When looking at the documentation, I see that mod_proxy in Apache 2.2
has some changes in the
ProxyPass directive, and that a maximum number of backend connections
can be specified. However,
we don't really use ProxyPass, our Virtual hosts look more like this:

<VirtualHost *>
        ServerName nagios2.site.com
        RewriteEngine On
        ProxyRequests On
        ProxyPreserveHost On

        RewriteCond %{HTTP_HOST}        ^nagios2\.site\.com$
        RewriteRule ^/(.*)              http://192.168.2.3/$1             [P,L]
</VirtualHost>

but sometimes with more advanced URL rewriting going on.

I think that by moving to 2.2 and limiting myself to ProxyPass
directives, that I'll lose some
flexibility in URL rewriting, so at the moment I feel a bit stuck.

Does anyone have any thoughts on this ? Has anyone experienced the
same problem ?

Thanks in advance,
Filip

---------------------------------------------------------------------
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@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org