Apache知识整理
Apache性能调优1
Apache 部分:
1. 移除不用的模块。
2. 使用 mod_disk_cache NOT mod_mem_cache 。
3. 扁平架构配置mod_disk_cache。
4. 安装恰当的Expires, Etag, 和 Cache-Control Headers 。
5. 将缓存放在独立的磁盘
6. 使用管道日志替代直接记录
7. 将日志放在不同的磁盘
8. 使用 mod_gzip/mod_deflate 。
9. 将HostnameLookups关闭.
10. 避免在configs中使用主机名。
11. 使用持久连接。
12. 不要设置KeepAliveTimeout太高。
13. 禁用 .htaccess。
14. 允许symlinks。
15. 关闭ExtendedStatus。
16. 避免在DirectoryIndex中通配符。
OS 部分:
17. 提高Swappiness。
18. 提高写入缓冲器( Write Buffer)大小。
19. 提高最大打开文件。
应用部分:
20. 设置图像和样式表的前端代理。
21. 使用 mod_passenger for rails。
22. 关闭safe_mode for php。
23. 不要使用threaded mpm with mod_php。
24. 刷新缓冲区预渲染。
25. 频繁访问的数据设置缓存。
Apache性能调优2
1 模块的加载
去掉不必要的加载或者动态加载模块
一般来说,不需要加载一下的模块:
Mod_include.so:服务器端包含,是一种已经过时的技术
Mod_autoindex.so:如果不希望apache列目录显示,可以删除
Mod_access.so mod_auth.so:如果你不需要进行安全验证,也没有必要加载
最好加载的模块:
Mod_dir.so:用于定义缺省文档index.php index.jsp等
Mod_log_config.so:用于记录文件格式
Mod_mime.so:定义文件类型的关联
2 域名查找
Hhostnamelookups off默认情况下已经是关闭的,务必要保持该设置。如果需要客户端dnx,可以使用第三方软件代替。服务器对dns作一个反向查询以找出客户系统的主机名,又进行正向查询看获得的主机名是否真实指向客户IP。
3 符号连接
Options -followsymlinks 开启后,apache检查每个请求中是否包含对符号链接的引用,对请求中包含的每个路径调用一次lstat()系统调用。
这将使用浏览器有可能访问文档根目录(DocumentRoot)之外的内容,并且只有符号连接的目的与符号连接本身为同一用户所拥有时(SymLinksOwnerMatch),才允许访问,这个设置将增加一些安全性,但将耗费Apache大量的资源。
4 服务器状态信息,默认关闭。
sethandler server--status
5 关闭目录浏览
options -indexes
6 更精确的时候尽可能不适用通配符之类的灵活选项,删除不必要的选项,明确的制定设置文件列表,最常用的放在前面。
Directoryindex index.php index.html
7 cgi模块
将所有cgi文件放在一个特定的目录并设置正确的权限,避免apache对每一个请求都要判断一次要求的是一个静态文件还是动态文件。
8 日志
写入日志信息是一个花费时间的工作,apache保持日志文件的打开状态以节省打开文件 的时间,如果没有必要的可以关闭节省更多的处理器时间。
9 allowoverrice none
.htaccess文件可以极大的扩展apache的设置参数,而无需每次改变设计都要编辑apache的主设置文件,但是也降低了服务器的性能。
使用htaccess文件,任何基本目录的设置都可以在主设置文件中进行,而主设置文件仅在服务器启动时解析一次。为了禁用htaccess文件,在任何节里加上指示allowoverride none。
10 timeout
Timeout设置apache等待一个连接读写操作的时间长度,也就是连接建立后,apache等待客户端完成请求发送的时间,或者相应开始以后。建议设置为 3~5秒
11 keepalive on
Apache 的KeepAlive这个指令指定一段时间,在这段时间内,可以让服务器和客户端之间持同一个连接。
优化KeepAlive
a、可以禁用KeepAlive(设置为 Off)
b、将KeepAliveTimeout改小,比3或者5秒
12 maxkeepaliverequests 100
最多保持多少个活动的长链接
13 keepalivetimeout 5
连接的保持时间,超过时间就回收。
14 serversignature off
serversignature off (出现在apache所产生的像404页面、目录列表等页面的底部)
servertokens prod (去除apache版本号,http响应包头就会被设置成:server:apache)
15 优化maxclient 最大连接数
16 启用压缩优化apache(gzip)
17 使用缓存mod_cache提高apache性能