apache 2.4磁盘缓存不写入缓存根

Posted

技术标签:

【中文标题】apache 2.4磁盘缓存不写入缓存根【英文标题】:apache 2.4 disk cache not writing to cahce root 【发布时间】:2016-08-23 10:19:14 【问题描述】:

我使用以下配置完成了 apache 2.4 的设置

 ProxyPass      /       "http://localhost:9081/"
    ProxyPassReverse /     "http://localhost:9081/"
    <IfModule mod_cache.c>
            <IfModule mod_disk_cache.c>
            CacheRoot "/opt/apicache/"
            CacheDefaultExpire 3600
            CacheEnable disk "/"
            CacheDirLevels 2
            CacheDirLength 1
            CacheMaxFileSize 1000000
            CacheMinFileSize 1
            CacheIgnoreCacheControl On
            CacheIgnoreNoLastMod On
            CacheIgnoreQueryString Off
            CacheIgnoreHeaders None
            CacheLastModifiedFactor 0.1
            CacheDefaultExpire 3600
            CacheMaxExpire 86400
            CacheStoreNoStore On
            CacheStorePrivate On
            # Enable the X-Cache-Detail header
            CacheDetailHeader on
            </IfModule>
            </IfModule>

我也通过以下更改了 CacheRoot 权限

mkdir -p /opt/apicache/
chown root:www-data /opt/apicache/ -R
chmod 775 /opt/apicache/ -R

apache日志级别设置为debug

LogLevel debug

非常不确定为什么 apache 2.4 没有将任何内容缓存到缓存根目录,也没有在错误日志中显示任何日志

【问题讨论】:

可能没有加载这些模块。你为什么要打扰 IfModule? 我可以看到缓存模块是用下面的命令加载的。忽略完全限定名错误root@INMHPUUBUNTU14:# ./apachectl -M AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using INMHPUUBUNTU14.04LAP08. Set the ' ServerName' directive globally to suppress this message Loaded Modules: core_module (static) . **cache_module (shared)** **cache_disk_module (shared)** .. alias_module (shared) rewrite_module (shared) 【参考方案1】:

确保 apache 可以写信给/opt/apicache/

chmod 766 /opt/apicache/

【讨论】:

【参考方案2】:

在我的情况下,缓存不起作用,因为页面大小大于 CacheMaxFileSize。

【讨论】:

由于没有提供详细答案,所以可以评论

以上是关于apache 2.4磁盘缓存不写入缓存根的主要内容,如果未能解决你的问题,请参考以下文章

怎么清楚sql sever中的记录

I/O操作(缓存流,数据流,对象流)

从 Windows CLI 刷新磁盘写入缓存

XHNetworkCache,一行代码将请求数据写入磁盘缓存

MySQL数据库MyISAM和InnoDB存储引擎的对比

搭建Memcache缓存数据库