So, I have a setup where I have an “external” Apache httpd (CentOS 7; Apache 
2.4) server that handles SSL, has CacheEnable disk “/” configured and is a 
reverse proxy with a Proxy balancer object and one BalancerMember which is an 
“internal” Apache httpd server running php-fpm and serving the actual web 
content over port 80 to the external server, as needed.


The goal of this configuration is to use the default max-age=3600 caching on 
the external server which will apply to all requests EXCEPT those I will 
override with Cache-Control: no-store headers on specific pages that have 
dynamic content I don’t want cached, leaving js files, style sheets, images, 
etc… as cacheable to take some load off my back-end servers so they can focus 
on running PHP, talking to DB servers, etc…


This all works great in theory and when I load pages and look at the headers in 
Firefox dev tools, the Cache-Control headers are exactly as I want them to be 
for each page and each type of content (dynamic pages show Cache-Control: 
no-store in the header, but everything else shows Cache-Control: max-age=3600), 
BUT when I take a look at the internal server’s access_log, I see the external 
server asking for and receiving content that it SHOULD be serving to the client 
from it’s own cache immediately after getting a fresh copy from the internal 
server. No matter how many times in the 3600 second window I ask for the 
resource, again, the proxy asks for a fresh copy from the internal server EVERY 
time, rather than serving from cache.


Any suggestions of what I might be doing wrong here, where I should be looking 
for trouble or what data I should provide here to assist in guiding the 
troubleshooting effort?


Thanks,


Scott

Reply via email to