I am hoping someone might be able to shed some light on this issue that I have had no luck solving elsewhere. We are running an Apache (2.2.15) server used for basic load balancing, but ultimately using ProxyPass directives to our various backend servers.
The problem seems to be that Apache "randomly" no longer has particular virtualhost files properly loaded (or more likely, we are causing this unknowingly), and and we are seeing 404s or proxy errors from Apache.
There are no errors in error_log, I also confirmed that httpd -S still shows the vhost loaded, but the curious part is that if I issue an httpd reload, it starts working again. The server has ~2GB free memory.
We have an Include vhosts/active directive in our httpd.conf file, and within that directory are symlinks to the actual vhost config files (don't beleive that this is related but wanted to disclose), and we are loading about 40 different vhost configs. Here is an example from one in particular that happens relatively requently (it also may be worth mentioning that it seems to only be certain vhost files like this one):
<VirtualHost 10.10.0.77:80> ServerName url.mysite.com ServerAlias url Options +FollowSymLinks ProxyPreserveHost On ProxyPass / http://hostname.internaldomain.local:8081/ ProxyPassReverse / http://hostname.internaldomain.local:8081/ </VirtualHost> <VirtualHost 10.10.0.77:443> ServerName url.mysite.com ServerAlias url RewriteEngine On SSLEngine on SSLProxyEngine on SSLProxyVerify none SSLCertificateFile /etc/httpd/conf/ssl/mycert.com.crt SSLCertificateKeyFile /etc/httpd/conf/ssl/mycert.key SSLCertificateChainFile /etc/httpd/conf/ssl/mycert_chain.crt Options +FollowSymLinks ProxyPreserveHost On ProxyPass / http://hostname.internaldomain.local:8081/ ProxyPassReverse / http://hostname.internaldomain.local:8081/ </VirtualHost>
SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 SetEnv proxy-initial-not-pooled 1 Include vhosts/active/*.active <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Deny from all Allow from .mydomain.com </Location> <IfModule mod_headers.c> RequestHeader unset Expect early </IfModule>
Thank you for your help/ideas, as searching on this particular issue has got me nowhere!