最近帮客户配置一个网站的CDN,网站使用java开发的,已经没有源代码,有几个影响缓存的响应头需要修改。
参考了几篇文章,在Tomcat的一些配置文件尝试修改,但是响应头依旧存在。
最后反编译class文件查看,发现是在代码response设置了响应头,那只能通过其他方法来处理了。
解决方法:前端使用Apache作为反向代理,通过修改Apache配置来处理响应头。
Apache转发主要配置proxypass ProxyPassReverse参数即可,响应头修改首先确保如下配置没有被注释
LoadModule headers_module modules/mod_headers.so
然后在httpd.conf配置文件中,添加如下代码
<IfModule headers_module>
Header unset XXX
Header unset XXX
</IfModule>
其中XXX是需要取消的响应头。
如果要取消或者添加特定后缀文件的响应头,可以使用下面配置实现。添加响应头是add,取消是unset
<FilesMatch "\.(txt|doc|docx|pdf|xls|xlsx|mp3|mp4|zip|rar|jpg|jpeg|png|gif|js|css)">
Header unset cache-control
Header unset pragma
Header unset expires
</FilesMatch>