天天看点

apache 优化小技巧

在centos 6 上yum 安装的httpd,默认没有开启压缩传输和图片过期,严重影响网页加载速度。而这两项功能在前端测试工具pagespeed和yslow里都是最高优先级的网页优化选项,但凡web服务器都需要。

主要针对的是文本、js、css,图片等静态内容,除了图片有较少的压缩价值之外,其余的都可以压缩传输,进行浏览器缓存。

创建一个文件/etc/httpd/conf.d/tunning.conf 可以实现上述功能,是对apache默认行为的有效补充。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<code>&lt;IfModule mod_deflate.c&gt;</code>

<code>         </code><code>&lt;Location /&gt;</code>

<code>                </code><code># Insert filter</code>

<code>                </code><code>SetOutputFilter DEFLATE</code>

<code>                </code><code># Netscape 4.x has same problems...</code>

<code>                </code><code>BrowserMatch ^Mozilla</code><code>/4</code> <code>gzip</code><code>-only-text</code><code>/html</code>

<code>                </code><code># Netscape 4.06-4.08 have some more problems</code>

<code>                </code><code>BrowserMatch ^Mozilla</code><code>/4</code><code>\.0[678] no-</code><code>gzip</code>

<code>                </code><code># MSIE masquerades as Netscape, but it is fine</code>

<code>                </code><code># BrowserMatch \bMSIE !no-gzip !gzip-only-text/html</code>

<code>                </code><code># NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48</code>

<code>                </code><code># the above regex won't work. You can use the following</code>

<code>                </code><code># workaround to get the desired effect:</code>

<code>                </code><code>BrowserMatch \bMSI[E] !no-</code><code>gzip</code> <code>!</code><code>gzip</code><code>-only-text</code><code>/html</code>

<code>                </code><code># Don't compress images and other</code>

<code>                </code><code>SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-</code><code>gzip</code> <code>dont-vary</code>

<code>                </code><code>SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-</code><code>gzip</code> <code>dont-vary</code>

<code>                </code><code>SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-</code><code>gzip</code> <code>dont-vary</code>

<code>                </code><code>AddOutputFilterByType DEFLATE text</code><code>/html</code> <code>text</code><code>/plain</code> <code>text</code><code>/xml</code> <code>text</code><code>/css</code>

<code>                </code><code>AddOutputFilterByType DEFLATE application</code><code>/x-javascript</code>

<code>                </code><code># Make sure proxies don't deliver the wrong content</code>

<code>                </code><code>#Header append Vary User-Agent env=!dont-vary</code>

<code>         </code><code>&lt;</code><code>/Location</code><code>&gt;</code>

<code> </code><code>&lt;</code><code>/IfModule</code><code>&gt;</code>

<code>&lt;IfModule mod_expires.c&gt;</code>

<code>        </code><code>ExpiresActive On</code>

<code>        </code><code>ExpiresByType image/* </code><code>"access plus 1 month"</code>

<code>        </code><code>ExpiresByType text</code><code>/css</code> <code>"access plus 1 month"</code>

<code>        </code><code>ExpiresByType text</code><code>/javascript</code>  <code>"access plus 1 month"</code>

<code>        </code><code>ExpiresByType application</code><code>/x-javascript</code> <code>"access plus 1 month"</code>

<code>&lt;</code><code>/IfModule</code><code>&gt;</code>

<code>&lt;IfModule mod_headers.c&gt;</code>

<code>  </code><code>Header </code><code>unset</code> <code>Server</code>

<code>  </code><code>Header </code><code>unset</code> <code>X-Powered-By</code>

另外,作为web服务器,apache不常用的模块,完全可以精简掉。

<code>#LoadModule ldap_module modules/mod_ldap.so</code>

<code>#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so</code>

<code>#LoadModule dav_module modules/mod_dav.so</code>

<code>#LoadModule dav_fs_module modules/mod_dav_fs.so</code>

<code>#LoadModule proxy_module modules/mod_proxy.so</code>

<code>#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so</code>

<code>#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so</code>

<code>#LoadModule proxy_http_module modules/mod_proxy_http.so</code>

<code>#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so</code>

<code>#LoadModule proxy_connect_module modules/mod_proxy_connect.so</code>

<code></code>

本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1214519,如需转载请自行联系原作者