You are here

Drupal专业开发指南 第22章 其它web服务器最优化

为了让你的web服务器更有效的运行,这里有一些其它的措施。

 
Apache最优化
Apache是Drupal最常用的web服务器,通过对它进行调整可以获得更高的性能。下面的部分将给出一些可以一试的方式,供大家参考。
 
mod_expires
这个Apache模块将让Drupal发出ExpiresHTTP头部,在用户的浏览器中对静态文件缓存两周,或者直到一个文件存在新的版本为止。这适用于所有的图片,CSS和JavaScript文件,和其它静态文件。最终的结果是减少了带宽,而服务器需要发送的信息将会更少一些。Drupal为了使用mod_expires,对其进行了预先配置,一旦mod_expires可用,Drupal就会使用它。mod_expires的设置可以在Drupal的.htaccess文件中找到。
 
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
# Do not cache dynamically generated pages.
ExpiresByType text/html A1
</IfModule>
 
我们不能让mod_expires缓存HTML内容,这是由于Drupal生成的HTML内容不全静态的。这也是Drupal拥有自己的内部缓存系统的原因,内置缓存系统可对它的HTML输出进行缓存(比如,页面缓存)。
 
.htaccess文件中的指令迁移到httpd.conf
    Drupal带有两个.htaccess文件:一个位于Drupal根路径,而另一个将被自动创建,在你创建了用于存储上传文件的目录以后,访问Administer ➤ File system来设置目录的位置,此时系统将为你自动创建一个.htaccess文件。在处理每个请求时,所有的.htaccess文件都将被搜索,读取,和解析。相反,httpd.conf只在Apache启动时才被读取。Apache指令可以放在这两种文件中。如果你能够控制你自己的服务器,你应该将.htaccess文件中的内容转移到Apache主配置文件(httpd.conf)中,并通过将AllowOverride设置为None来禁用在你的web服务器根路径下查找.htaccess文件:
<Directory />
AllowOverride None
...
</Directory>
 
对于每个请求,这将阻止Apache通过遍历目录树来查找要执行的.htaccess文件。这样对于每个请求,Apache要做的工作就会有所减少,这样它就能够处理更多请求了。
 
其它的Web服务器
    还有另外一种选项,那就是使用其它服务器来代替Apache。Benchmarks已经说明了这一点,例如,一般情况下,LightTPD web服务器每秒能够为Drupal处理更多的请求。更多详细比较,参看http://buytaert.net/drupal-webserver-configurations-compared
 

Drupal版本: