我有一个既有动态生成(PHP)又有静态内容的网站。设置Apache以根据内容协商透明地压缩所有内容是一件小事。
但是,我感兴趣的是不压缩很少(如果有的话)更改的静态内容,而是以“asis”方式提供预压缩数据。
这背后的想法是减少延迟并节省CPU功率,同时压缩更好。基本上,我不是一遍又一遍地压缩相同的数据,而是希望服务器在不触摸它的情况下sendfile
内容,但使用正确的标题。理想情况下,它可以与.html
和.html.gz
文件无缝协作,在一种情况下使用透明压缩而在另一种情况下不使用透明压缩。
有mod_asis,但这不会提供正确的标头(最重要的是影响缓存和代理操作的标头),并且它与内容协商无关。为content-encoding
添加.gz
似乎是正确的,但什么都不做,'.html.gz`网页显示为下载(可能会干扰某些默认的typemap?)。
似乎gatling webserver在这方面做了我想要的,但我真的更喜欢和Apache呆在一起,因为尽管任何人都可以责备Apache,但它是一个主流的服务器好多年了。
另一种解决方法是将静态内容与另一个端口或子域上的另一个服务器一起提供,但我更喜欢它只是“无形地”工作,并且如果系统没有比必要的更复杂。
是否有一个众所周知的配置习惯用法使Apache的行为方式符合指示?