我有一个通过 apache 在 EC2 上运行的金字塔服务器,其配置如下 -
<Directory path_to_virtual_env>
WSGIProcessGroup pyramid
Require all granted
Order allow,deny
Allow from all
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain application/x-javascript application/x-font-woff
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
ExpiresActive On
ExpiresDefault "access plus 1 year"
Header append Cache-Control "public"
</Directory>
我能够在端口 80 上使用 GZIP 压缩运行 Pyramid 服务器,但就到期模块而言,我对大多数文件都得到了以下响应 -
我已通过执行确保 expires 模块正在运行 -sudo a2enmod expires
但sudo a2enmod headers
我得到的响应与上述相同。我尝试了 stackoverflow 上关于此主题的许多答案,但仍然没有成功。
我是否遗漏了什么?
答案1
您添加的模块将设置到期时间文件Apache 所服务的。
它不会干扰脚本中存在的过期标头。
您可以通过将该mod_expires
部分移动到服务器根位置(即不在应用程序前缀下方)然后获取类似/robots.txt
、 或 的内容来测试这一点/favicon.ico
。
如果您想为动态输出设置过期标头,您应该在应用程序本身中执行此操作。