Entries Tagged as 'httpd'

怎样让httpd2.2支持ssi(server side include)

权威文档可以看这里
只想简单应用又懒得看e文的就听我道来
首先
你需要让apache知道怎么去解析.shtml文件(这里假设有ssi的文件的扩展名为shtml)

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

从httpd2.0开始就用这两句
在以前apache1.3.x的时候貌似是另外的一句
然后要在你要实现ssi功能的目录下标明:

Options +Includes

比如

<Directory /var/www/html>
Options +Includes
</Directory>

最后
重起apache
即可

How do you pre-compress content(in apache)?

公司手头有几台apache(httpd2.x)的机器
主要是往外吐一堆的xml
其中最主要是一个300多k的大xml
原来为了节省流量
在服务器上打开了mod_deflate
但后来发现机器负载巨重(load>100甚至于更多)
于是就把mod_deflate关掉(mod_deflate的缺点导致的)
但是显然一把mod_deflate关掉,流量又得猛涨
难道就没有一种折衷的方案吗?
记得在n年前,sina的同学们说发布的内容页都是提供2个版本对外服务(一个压缩过的,一个未压缩的)
于是我就想能不能把这些巨大的xml文件预先压缩一下
来请求了局让apache直接取这个压过的版本呢?
于是就开始想办法
最后发现有n种方式可以实现

  1. Enable pre-compression with mod_gzip;http://schroepl.net/projekte/mod_gzip/config.htm#precompressed
  2. Use Apache rewrite rules to redirect requests (index.html) to the pre-compressed version (index.html.gz):http://www.webmasterworld.com/apache/3387947.htm
  3. Use PHP to redirect to the pre-compressed version;http://www.phpbuilder.com/tips/item.php?id=1128
  4. Use Apache feature MultiViews and apache module mod_negotiation

httpd2.x下的mod_deflate的缺点

现在国内的大多数网站,为了节省流量(流量好贵的说)
大都启用了服务器端的压缩模式
就是说当你的浏览器请求一个文件(文本)的时候
服务器给你的其实是这个文件的压缩版本
然后你的浏览器在解压缩、显示
apache1.3.*的时代,大家基本上都是用第三方模块儿:mod_gzip
apache2,也就是httpd2.x开始,系统自带了mod_deflate模块用来实现这个功能
但是这个mod_deflate却不是那么好用的
虽然启用非常简单,只需要简单的一句话……

  1. 首先,mod_deflate每当浏览器请求的时候都要压缩一遍。这样的话不但耗cpu,而且浪费时间。如果说动态内容每次都压缩是无奈之举的话,那么静态页面每次都要重新压缩成同样的内容就显得有些……那个了;
  2. 再次,mod_deflate并不真正生成压缩过的输出文件(?)。
  3. 最后,mod_defalte的压缩效率很低,哪怕把压缩级别设最高:9,其压缩率比起gzip来还是差很多,而且貌似压缩级别设成1或9,其压缩比好像都差不多