转载来源:人人都能做的性能优化 Apache性能优化
疑问小记:
1. 避免不必要的DNS查询
a) HostnameLookups Off
b) Deny/Allow from ip_address
2. Sendfile对于较大静态资源请求效率更高,同时建议关闭操作系统ipv6内核模块。
注:对于关闭IPV6模块的建议,还不明白为什么?
3. 减少不必要的系统内核调用
a) AllowOverride None 禁止去尝试打开.htaccess
b) Options FollowSymLinks 禁止去判断访问目录是否为连接
c) DirectoryIndex index.php index.html 合理的资源列表数与位置顺序会节约更多的系统内核调用
d) Options MultiViews 低效的内容协商
注:我认为是应该尽量避免使用 MultiViews 的啊,为什么这里使用删除线呢?
e) 保护简洁的目录层级结构
f) 关闭不要必要的日志记录功能
4. 节约系统内存资源:不要加载没有使用到的模块
5. MMap、Deflate(Gzip)、Expires、Header、Keep-Alive
6. 有条件的话,自己编译Apache,并且支持Worker MPM
注:prefork 仍然是比较推荐使用的。虽然 worker 支持线程,可以节省内存,但是也存在一定弊端(如进程一旦崩溃,所有线程也会一起崩溃)。而且PHP本身是进程级的。当然,如果在CGI模式下,用线程级的编程语言,也是可以的。