从上一篇《Linux环境够用的ngx_pagespeed安装教程》我们知道了如何给自己的nginx装上ngx_pagespeed,那么这篇将会告诉你如何配置使用ngx_pagespeed来加速你站点的前端资源。其中一些配置需要根据自己的站点情况进行筛选使用,例如你的站点的css会保持一直更新的情况下,就不要配置使用CSS的压缩、合并、级联、内联。
创建ngx_pagespeed缓存文件夹
1
2
|
mkdir /tmp/cache/ngx_pagespeed_cache
chown www.www /tmp/cache/ngx_pagespeed_cache
|
打开你站点的conf配置文件
假设我的配置文件是在 /usr/local/nginx/conf/vhost
的目录
1
|
vim /usr/local/nginx/conf/vhost/www.exehack.net.conf
|
在server {}
内添加下面配置代码
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
36
37
38
|
# 启用ngx_pagespeed
pagespeed on;
pagespeed FileCachePath /tmp/cache/ngx_pagespeed_cache;
# 禁用CoreFilters
pagespeed RewriteLevel PassThrough;
# 启用压缩空白过滤器
pagespeed EnableFilters collapse_whitespace;
# 把多个CSS文件合并成一个CSS文件
pagespeed EnableFilters combine_css;
# 把多个JavaScript文件合并成一个JavaScript文件
pagespeed EnableFilters combine_javascript;
# 删除带默认属性的标签
pagespeed EnableFilters elide_attributes;
# 改善资源的可缓存性
pagespeed EnableFilters extend_cache;
# 更换被导入文件的@import,精简CSS文件
pagespeed EnableFilters flatten_css_imports;
pagespeed CssFlattenMaxBytes 5120;
# 延时加载客户端看不见的图片
pagespeed EnableFilters lazyload_images;
# 启用JavaScript缩小机制
pagespeed EnableFilters rewrite_javascript;
# 启用图片优化机制
pagespeed EnableFilters rewrite_images;
# 预解析DNS查询
pagespeed EnableFilters insert_dns_prefetch;
# 重写CSS,首先加载渲染页面的CSS规则
pagespeed EnableFilters prioritize_critical_css;
# 禁止pagespeed 处理WordPress的/wp-admin/目录(可选配置,可参考使用)
pagespeed Disallow “*/wp-admin/*”;
# 禁止pagespeed 处理typecho的/admin/目录(可选配置,可参考使用)
pagespeed Disallow “*/admin/*”;
location ~ “/.pagespeed/.([a-z]/.)?[a-z]{2}/.[^.]{10}/.[^.]+” { add_header “” “”; }
location ~ “^/ngx_pagespeed_static/” { }
location ~ “^/ngx_pagespeed_beacon$” { }
location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
|
优化ngx_pagespeed的配置
在pagespeed on;
下添加memcached的配置(得先有memcached)
1
2
|
pagespeed MemcachedThreads 1;
pagespeed MemcachedServers “localhost:11211”;
|
重启nginx
配置完后请记得重启Nginx!
CentOS 6.x:
1
|
service nginx restart
|
CentOS 7.x:
1
|
systemctl restart nginx
|
最后结语:因为工作需要给公司其他站点用上ngx_pagespeed,所以才有了这个教程,但我拖了很久才写,可能会有错漏,欢迎补充完善。