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性能

 

 

原文地址:https://www.cnblogs.com/mzhaox/p/11233291.html