1、Nginx的介绍:

Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。

 

2、ngx-pagespeed:

Ngx-pagespeed是一个免费的开源Nginx模块,可用于加快您的站点速度,并减少页面加载时间。 它可以自动将Web性能最佳做法应用于页面和关联资源,而无需修改现有内容或工作流。 您可以使用Ngx-pagepeed模块轻松优化各种文件,如CSS,HTML,png和jpg。

Ngx-pagepeed带有很多功能,其中一些主要功能如下所示:

l  支持图像动态调整大小,重新压缩和优化。

l  小资源内联。

l  HTML重写

l  缓存生存期延长。

l  延迟JavaScript和图像加载

 

 

3、下载nginx源码:

wget http://nginx.org/download/nginx-1.12.0.tar.gz

 

4、下载ngx_pagespeed源码:

wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip

 

5、解压nginx和ngx_pagespeed源码包:

tar -xvzf nginx-1.12.0.tar.gz

tar -xvzf v1.12.34.2-stable.zip

(unzip v1.12.34.2-stable.zip -d .)

 

Nginx error_page 代码 nginx pagespeed_缓存

得到两个文件:

 

Nginx error_page 代码 nginx pagespeed_nginx_02

 

 

6、需要下载PageSpeed优化库来编译nginx,必须进入incubator-pagespeed-ngx-1.12.34.2-stable中,下载优化库,并解压:

1) cd incubator-pagespeed-ngx-1.12.34.2-stable

2) wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz

     3) tar -xvzf 1.12.34.2-x64.tar.gz

 

7、进入到nginx-1.12.0的源码目录,并进行编译:

 

Nginx error_page 代码 nginx pagespeed_nginx_03

1 ) ./configure --prefix=/usr/local/page_nginx --add-module=/usr/local/incubator-pagespeed-ngx-1.12.34.2-stable/
 --user=nobody --group=nobody --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module

2) make

3 )  make install

 

8、配置nginx.conf文件:

server {
  listen       9090;
         server_name  192.168.1.103;
         # ngx_pagespeed的配置
          pagespeed on;  # 开启
          pagespeed FileCachePath /var/ngx_pagespeed_cache;  # 缓存目录
          pagespeed EnableFilters lazyload_images;   # 懒加载图片
          pagespeed EnableFilters convert_png_to_jpeg,convert_jpeg_to_webp;  # 转换为webp,必须要
          location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
          location ~ "^/ngx_pagespeed_static/" { }
          location ~ "^/ngx_pagespeed_beacon" { }
 
          location / {
              default_type    text/plain;
              return 200 'sssss';
          }
          location /index {
              root /home/;
              index index.html;
         }
         location /page {
              root /home/;
              index page.html;
         }
         location /page/fs/ {  # X不行
             root /home;
         }
}
 
图片位置的第一种方式:
location ~ .*\.(gif|jpg|jpeg|png)$ {   # 配置文件的位置
           expires 24h;
           root /home/;    #指定图片存放路径
           try_files $uri $uri/ @webp;    # 如果文件不存在尝试生成 webp 图片
}

html和图片的位置:

 

Nginx error_page 代码 nginx pagespeed_Nginx error_page 代码_04

index.html:

 

Nginx error_page 代码 nginx pagespeed_Nginx error_page 代码_05

 

图片放置的第二种方式:

location ~ .*\.(gif|jpg|jpeg|png)$ {   # 配置文件的位置
          expires 24h;
          root /home/images/img;    #指定图片存放路径
          try_files $uri $uri/ @webp;    # 如果文件不存在尝试生成webp图片
 }

html和图片的位置:

图片位置:

 

Nginx error_page 代码 nginx pagespeed_缓存_06

html位置:

 

Nginx error_page 代码 nginx pagespeed_nginx_07

 

 

 

 

 

 

9、启动nginx:

./nginx

./nginx -s reload  (重启)

 

10、浏览器访问:

192.168.1.103:9090/index.html

192.168.1.103:9090/page.html

 

11、项目上的配置:

server {
         listen    8080;
          server_name  127.0.0.1:8443;
 
         pagespeed on;  # 开启
         pagespeed FileCachePath /var/ngx_pagespeed_cache;  # 缓存目录
         pagespeed EnableFilters lazyload_images;   # 懒加载图片
         pagespeed EnableFilters convert_png_to_jpeg,convert_jpeg_to_webp;  # 转换为webp,必须要
         location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
         location ~ "^/ngx_pagespeed_static/" { }
         location ~ "^/ngx_pagespeed_beacon" { }
 
         server_tokens   off;
         error_page   404              /404.html;
         error_page   500 502 503 504  /50x.html;
         ssl_protocols TLSv1.1 TLSv1.2;
         root /usr/local/abbe/gitabbe/myabbe;
         location /static/ {
               root /usr/local/abbe/gitabbe/myabbe/specialpurpose/ecommerce/webapp;
               expires 24h;
               try_files $uri $uri/ @webp;
         }
         location /images/ {
              root /usr/local/abbe/gitabbe/myabbe/framework/images/webapp;
              expires 24h;
              try_files $uri $uri/ @webp;
          }
          location / {
               proxy_pass https://127.0.0.1:8443;
              proxy_set_header Host $host;
              proxy_set_header X-real-ip $remote_addr;
              proxy_set_header REMOTE-HOST $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

 

Nginx error_page 代码 nginx pagespeed_nginx_08

 

 

注意事项:

1、安装ngx_pagespeed前安装这个:
     yum install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel
 
2、出现这个错误:“build_from_source=false checking for psol … not found”,可能是 libuuid-devel 没有安装,运行下面命令安装即可。
yum install -y libuuid-deve
 
 
3、1.14.2的nginx  +  v1.13.35.2的ngx_pagespeed  + v1.13.35.2的优化库,是可以的!
      1.12.0的nginx  +  v1.12.34.2的ngx_pagespeed  + v1.12.34.2的优化库,是可以的!

 

3、1.14.2的nginx  +  v1.12.34.2的ngx_pagespeed  + v1.12.34.2的优化库

make的时候出现这个错误:不知道为什么???

 

Nginx error_page 代码 nginx pagespeed_nginx_09