Hi All,
OS: *Ubuntu 14.04.2 LTS*
Apache: *2.4.7-1ubuntu4.4*
*/etc/apache2/sites-available/000-default.conf* file:
Mutex file:/var/lock/apache2 rewrite-map
<VirtualHost *:80>
...
RewriteMap phpmap prg:/path/to/rewrite.php
...
RewriteBase /
...
RewriteCond
${phpmap:%{HTTP_HOST}$%{REQUEST_URI}$%{QUERY_STRING}$%{HTTP_USER_AGENT}|NULL}
!^(NULL|)$
RewriteRule .*
${phpmap:%{HTTP_HOST}$%{REQUEST_URI}$%{QUERY_STRING}$%{HTTP_USER_AGENT}|%{REQUEST_URI}}
[R=301,L,NE]
...
</VirtualHost>
I know, the PHP is not the best way for the RewriteMap+prg, but
currently we can't change it. A new CMS is under development, but it
will take at least 1 year yet, so I need to solve the redirect problems
with the current configuration.
_Current situation:_
1) We have one Amazon ELB with two instances for the CMS servicing. In
the databases there are more hundred domains with more thousand
redirects. (there are inside redirect: domain.tld/before -->
domain.tld/after and to outside: olddomain.tld --> newdomain.tld as well).
2) The rewrite.php handles the redirects and I full debugged the
rewrite.php it works correctly it always sends back the right url to the
apache.
3) After a while the inside redirects will be stopped and the outside
redirects work pell-mell (should be: client1-old-domain.tld -->
client1-new-domain.tld however the redirect does it:
client1-old-domain.tld --> client2-new-domain.tld and it's very
embarrassing.)
4) as the number of the sites is growing the "after a while" is getting
shorter.
I believed the lack of the Mutex caused the problem but I've checked and
the mutex is on:
$ sudo apachectl -S | grep -i mutex
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: dir="/var/lock/apache2" mechanism=fcntl
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Currently I have only one solution: the Apache reload. If I reload the
apache (sudo service apache2 reload) the all problem go away for a
while. So currently both of the two Apache webservers are reloaded every
5 minutes but this is not the desired way :) But I can't find the real
problem and the solution. I've read the changelog to Apache 2.4.17 but I
didn't find any relevant fixes.
Does anybody have a guess what can cause the problem? What and how
should I check?
Thanks for any advice in advance!
Best regards,
Zsolt