Am 15.04.2016 um 23:02 schrieb Bjoern Voigt:
Since some years I run a local Apache proxy cache for localhost and the
192.168.1.0/24 network. My proxy cache directory /var/cache/apache-proxy
is cleaned by a htcacheclean weekly cron job.
In the meantime Apache stopped writing files in my cache directory
/var/cache/apache-proxy. The proxy function still works.
I doubt, that an Apache update with configuration directive changes may
have caused the problem. But I don't know after which event Apache
stopped caching.
Here is my Apache proxy configuration. I verified, that the modules
mod_proxy and mod_cache_disk are loaded, e.g. by making temporary syntax
errors between the "IfModule" directives and "apachectl configtest".
- Distribution: openSUSE Tumbleweed
- Apache 2.4.20
- /etc/apache2/conf.d/proxy.conf:
<IfModule
mod_proxy.c>
ProxyRequests On
ProxyVia On
AllowCONNECT 443
<Proxy *>
Require ip 192.168.1.0/255.255.255.0 127.0.0.0/255.0.0.0 ::1
</Proxy>
</IfModule>
<IfModule mod_cache.c>
<IfModule mod_cache_disk.c>
CacheRoot /var/cache/apache-proxy
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 2
</IfModule>
</IfModule>
How can I debug the problem?
(Btw. "strace" shows, that the cache configuration directory
/var/cache/apache-proxy is never touched by Apache.)
First personally I don't like the use of IfModule. That is a nice
feature, if you want to be flexible in turning on or of functional
blocks. But if you have a more rigid configuration and you need a
feature, why enclose it in IfModule? If the module really isn't loaded,
you like a clear startup error, that tells you about CacheRoot directive
isn't known etc. and not instead just load without having the cache
enabled. So I suggest removing the IfModule directives (assuming that
the proxy and cache features are not just optional for you).
Can you see the two level directory structure for the cache underneath
/var/cache/apache-proxy? Are ownerships and permissions OK?
For further debugging you can:
- Add
%{cache-hit}e %{cache-revalidate}e %{cache-miss}e %{cache-invalidate}e
%{no-cache}e
to the LogFormat that you are using in your CustomLog definition
(access log)
- Add "CacheDetailHeader on" to the config and look at the response
header "X-Cache-Detail" which tells you about the caching decision and
reasons.
- Increase the log level of mod_cache and mod_cache_disk via
LogLevel warn cache:trace8 cache_disk:trace8
Depending on your request load and cache activity this might result in
lots of error log output.
- Have a look for mod_cache and mod_cache_disk entries for the time
between your newest working version and the broken one in CHANGES:
http://www.apache.org/dist/httpd/CHANGES_2.4
Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org