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


Reply via email to