本文主要和大家分享 Apache 优化的几点建议, Apache 是 web 服务器软件, 它最常见是搭配 PHP 开发语言去使用. 今天, 小编根据 Apache 官方手册再结合实际, 整理出下面这些优化建议, 希望对大家的 Apache 服务器的运行效率有效果.
本文主要和大家分享 Apache 优化的几点建议, Apache 是 Web 服务器软件, 它最常见是搭配 PHP 开发语言去使用. 今天, 小编根据 Apache 官方手册再结合实际, 整理出下面这些优化建议, 希望对大家的 Apache 服务器的运行效率有效果.
1, 控制 MaxClients 的设置, 以避免服务器产生太多的子进程而发生交换.
进程间的数据交换会占用很大内存, 数据交换产生的滞后使用户总感觉 "不够快", 所以用户就可能去按 "停止" 和 "刷新", 从而带来更大的负载. 一般建议小网站将 MaxClients 设置为 12~24.
2, 选择更好的硬件, CPU, 内存, 硬盘等等
这句很鸡肋啦, 如果有更多的银子, 谁不愿意换更好的呢?
3, 定期更新操作系统, 打上系统补丁; 如果你的操作系统支持 sendfile()系统调用, 则务必安装带有此功能的版本或补丁
在支持 sendfile 的系统中, Apache2 可以更快地发送静态内容而且占用较少的 CPU 时间.
4,HostnameLookups 设置为 off
尽量较少 DNS 查询的次数. 如果你使用了任何 "Allow from domain" 或 "Deny from domain" 指令(也就是 domain 使用的是主机名而不是 IP 地址), 则代价是要进行两次 DNS 查询(一次正向和一次反向, 以确认没有作假). 所以, 为了得到最高的性能, 应该避免使用这些指令(不用域名而用 IP 地址也是可以的).
5, 为 Directory 加上 FollowSymLinks
如果网站空间中没有使用 Options FollowSymLinks ,Apache 就必须执行额外的系统调用以验证符号连接. 例如: 在请求 "/index.html" 时, Apache 将对 "/www","/www/htdocs","/www/htdocs/index.html" 执行 lstat()调用. 而且 lstat()的执行结果不被缓存, 因此对每一个请求都要执行一次.
6, 将 AllowOverride 设置为 None
对于使用虚拟主机的朋友可能会觉得不方便, 这样设置将会使. htaccess 中的设置失效, 如果实在需要, 并且在有条件的情况下, 请在 conf 配置文件中直接写入 rewrite 规则
7, 禁用内容协商
尽管在实践中, 内容协商的好处大于性能的损失, 如果你很在意那一点点的性能损失, 则可以禁止使用内容协商. 但是仍然有个方法可以提高服务器的速度, 就是不要使用通配符.
8,MaxRequestsPerChild 设置为非 0 以防止内存泄漏
MaxRequestsPerChild 用于控制 apache 子进程在何时销毁, 默认为 0, 代表永不销毁子进程, 这可能会存在内存泄漏的风险, 建议设置为 10000
9,KeepAlive 与 KeepAliveTimeOut
如果你使用的使 mpm_prefork 模式(apache 默认安装), 那么建议你将 KeepAlive 设置为 off; 因为, 开启 keepalive 会为每个客户端建立一个连接, prefork 不会创建线程, 估计 100 个用户同时访问你的网站, apache 就会挂了~, 如果你实在想开启, 那么请将 KeepAliveTimeOut 时间设置更短些, 例如 5, 默认是 60 秒呢
10, 不要静态编译 apache
尽管会有很多人和你说静态编译的好处, 同时, 你自己也想自己编译一把, 以体验乐趣~但是, 将模块已静态方式编译进 apache 绝对不是一个好选择, 尤其是对于缺银子的站长们来说, 一个配置不当, apache 会在启动时就占用光你所有的内存, 最后拖垮服务器.
来源: http://server.51cto.com/sOS-571568.htm