技术开发 频道

借助PageSpeed为Nginx网站服务器提速

  配置Nginx中的ngx_pagespeed模块

  想启用并配置ngx_pagespeed,就要编辑Nginx配置的server部分。nginx.conf的下面这个示例表明了如何指定一个或多个PageSpeed过滤器。

  $ sudo vi /etc/nginx/nginx.conf server { 
  # 侦听的端口 listen 80; 
  # 服务器名称 server_name xmodulo.com www.xmodulo.com; 
  # 记下根目录 root /usr/local/nginx/html; 
  # 访问日志 access_log /var/log/nginx/access.log main; 
  # 启用ngx_pagespeed pagespeed on; 
  # 在此放置一个或多个pagespeed过滤器。 }

  说到指定PageSpeed过滤器,有两种不同的级别可供你选择:CoreFilters和PassThrough。除非有所指定,否则默认情况下使用CoreFilters。

  对新手用户而言:使用CoreFilters

  CoreFilters含有一系列PageSpeed过滤器,谷歌认为这些过滤器对大多数网站来说是安全的。如果启用CoreFilters,你就自动启用了一系列"安全"规则。所以,推荐新手用户采用这种方法。如果你愿意,也可以禁用CoreFilters中的某个或某些过滤器,或者选择性地启用额外的过滤器。下面这个例子表明了使用CoreFilters的ngx_pagespeed配置。

  server { 
  # 侦听的端口 listen 80; 
  # 服务器名称 server_name xmodulo.com www.xmodulo.com; 
  # 记下根目录 root /usr/local/nginx/html; 
  # 访问日志 access_log /var/log/nginx/access.log main; 
  # 启用ngx_pagespeed pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache; 
  # 启用CoreFilters pagespeed RewriteLevel CoreFilters; 
  # 禁用CoreFilters中的某些过滤器 pagespeed DisableFilters rewrite_images; 
  # 选择性地启用额外的过滤器 pagespeed EnableFilters collapse_whitespace; pagespeed EnableFilters lazyload_images; pagespeed EnableFilters insert_dns_prefetch; }

  想了解CoreFilters中的全部过滤器,请参阅官方文档。

  对高级用户而言:使用PassThrough

  如果是高级用户,你可以使用PageThrough级别,你可以手动启用个别过滤器。

  server { 
  # 侦听的端口 listen 80; 
  # 服务器名称 server_name xmodulo.com www.xmodulo.com; 
  # 记下根目录 root /usr/local/nginx/html; 
  # 访问日志 access_log /var/log/nginx/access.log main; 
  # 启用ngx_pagespeed pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache; 
  # 禁用CoreFilters pagespeed RewriteLevel PassThrough; 
  # 启用压缩空白过滤器 pagespeed EnableFilters collapse_whitespace; 
  # 启用JavaScript库卸载 pagespeed EnableFilters canonicalize_javascript_libraries; 
  # 把多个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; }

  另外的配置步骤:

  创建将由Nginx写入的一个文件缓存目录。

  $ sudo mkdir /var/ngx_pagespeed_cache $ sudo chown nginx:nginx /var/ngx_pagespeed_cache

  为了方便起见,为Nginx创建一个初始化脚本。

  $ wget https://github.com/MovLib/www/raw/master/bin/init-nginx.sh $ sudo mv init-nginx.sh /etc/init.d/nginx $ sudo chmod 0755 /etc/init.d/nginx

  最后,启动Nginx。

  $ sudo /etc/init.d/nginx start

  注意:除了ngx_pagespeed外,你可能还需要定义额外的Nginx模块(比如HTTPS/SSL支持等),具体视需求而定。这种情况下,你需要在Nginx编译这个环节来添加这些模块。请参阅这篇教程(http://xmodulo.com/2014/01/compile-install-nginx-web-server.html),了解如何启用额外的Nginx模块。

  原文链接:http://xmodulo.com/2014/01/speed-nginx-web-server-pagespeed.html

0
相关文章