• 安装nginx带有ngx_pagespeed


    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 .)

     

    得到两个文件:

     

    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的源码目录,并进行编译:

     

    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和图片的位置:

     

    index.html:

     

    图片放置的第二种方式:

     location ~ .*.(gif|jpg|jpeg|png)$ {   # 配置文件的位置

              expires 24h;

              root /home/images/img;    #指定图片存放路径

              try_files $uri $uri/ @webp;    # 如果文件不存在尝试生成webp图片

     }

    html和图片的位置:

    图片位置:

     

    html位置:

     

    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;

            }

    }

     

    注意事项:

    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的时候出现这个错误:不知道为什么???

     

  • 相关阅读:
    centos networkmanager 和 network配置冲突
    Struts ajax json重新整理
    Struts2 ajax json小例子
    (转)json-lib 的maven dependency
    Struts2文件下载
    jQuery自定义滚动条插件mCustomScrollbar
    Struts2自定义拦截器
    Spring的自动装配在session监听器失效
    mysql 分组+排序+限定
    mysql触发器
  • 原文地址:https://www.cnblogs.com/fangsheng/p/10305029.html
Copyright © 2020-2023  润新知