linux – 如何优化Apache速度以提供静态内容?

前端之家收集整理的这篇文章主要介绍了linux – 如何优化Apache速度以提供静态内容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很清楚ngix对于静态内容要好得多,但我不能使用它.否则,我可以完全访问我的服务器(VPS).

我发现了很多关于优化apache的文章和帖子,但它总是关于PHP应用程序的性能.

我正在使用最新的Apache 2.4.7

我已经在使用MPM了.如果它有意义的话,我正在考虑调整KeepAlive MaxClients等(静态内容)性能

解决方法

在尝试调优Apache之前,请确保您具有适当的监控,以便您可以查看Apache服务的请求数以及系统资源如何相互关联.一个易于使用的解决方案是 munin.

接下来,准备负载测试,使用该测试可以使系统处于负载状态,以查看不同调整选项的效果.有很多解决方案,从非常简单的abJMeter到非常复杂的基于云的解决方案,您可以模拟来自世界各地的数千名访客.搜索“网站负载测试”,你会发现很多解决方案.

最后,以下是我在调优Apache时认为重要的几点:

>删除未使用的模块:使用apache2ctl -M查看加载的模块.如果不需要,则应删除标记(共享)的模块.这将减少Apache的内存占用,并允许您的操作系统将可用RAM用于其他目的(例如缓存).
>不要使用.htaccess文件:将所有设置放在Apache配置中并设置AllowOverride None,这样Apache就不必查找.htaccess文件并在提供请求时解析它们.
>明确允许符号链接:通过设置Options FollowSymLinks -SymLinksIfOwnerMatch,您可以告诉Apache允许使用符号链接,因此可以自由地提供它所读取的文件,而无需验证它们是否是符号链接.这节省了一些系统调用.
>根据您的监控需求,请考虑关闭ExtendedStatus:这将节省一些系统调用,但会为您提供较少的监控信息.不确定它是否真的值得.
>避免过多的日志记录:记录每个请求都会导致相当多的I / O.使用选择性日志记录,您可以控制要记录的请求.以下内容仅记录以.html结尾的URL的请求:

SetEnvIf Request_URI ".html$" dolog
CustomLog /var/log/apache2/access.log combined env=dolog

>如果您不需要SSL,请考虑使用事件MPM,这会导致打开连接(例如由于keepalive)更有效地处理.如果您需要SSL,则事件MPM的功能与Worker MPM相同.有关不同MPM模块的更多信息,请参见How do I select which Apache MPM to use?.
>压缩甚至预压缩数据:通过使用mod_deflate,内容在被发送到客户端之前被压缩.由于您有静态数据,因此可能需要预压缩内容而不是反复压缩相同的数据.有关如何完成此操作,请参阅http://httpd.apache.org/docs/2.4/mod/mod_deflate.html#precompressed.>调整操作系统:使用大型TCP写缓冲区,因此需要更少的系统调用来将请求的数据提交给客户端.还要确保打开文件的最大数量足够高,以便Apache不会遇到该限制.

猜你在找的Linux相关文章