我对mod_expires有问题。 我只是简单地将默认过期时间设置为1天,然后按类型(针对图像和音频)设置过期时间。
例如,我将ExpiresByType图片/ jpeg设置为“访问权限加1个月”。 问题在于,每个页面都具有正确的Expires DateTime,因此它已过期加上1天,但是图像和音频(image / jpeg,image / png,音频/ mpeg)的过期时间为12小时。 这是我的配置:
<IfModule mod_cache_disk.c>
CacheRoot /var/cache/apache2/mod_cache_disk
CacheDirLevels 2
CacheDirLength 1
</IfModule>
....
CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheIgnoreHeaders Set-Cookie
<Location />
CacheEnable disk
CacheHeader on
CacheDefaultExpire 600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.5
ExpiresActive on
ExpiresDefault "access plus 1 days"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType audio/mpeg "access plus 1 months"
Header merge Cache-Control public
FileETag All
</Location>
....
然后,我尝试添加另一个位置,并且不使用ExpiresByType,但仍然没有成功。这是我尝试的方法:
<LocationMatch "(.png|.mp3|.jpg|.jpeg)">
ExpiresActive on
Header Set Cache-Control "max-age=1678400"
ExpiresDefault "access plus 1 days"
FileETag All
</LocationMatch>
Cache-Control标头具有正确的最大使用期限,但到期日期仍为12小时。
然后我尝试手动进行设置,因此尝试以下操作:
Header Set Expires "Thu, 1 Jan 2020 00:00:00 GMT"
这很好,但是我需要将其设置为自上次访问起1个月/年。
Apache仅对实际服务于当前应用程序的gunicorn Web服务器进行代理传递。