MENU

宝塔环境下安装配置PageSpeed、tlsv1.3

March 13, 2019 • 教程

宝塔环境下安装配置PageSpeed模块

ngx_pagespeed将重写你的网页,让用户以更快的速度进行访问。重写的工作包括压缩图片、缩减CSS和JavaScript、扩展缓存时间

因不知宝塔的nginx安装在何处我们需要先将其找出来

ls -l `which nginx`

lrwxrwxrwx 1 root root 28 Mar 13 17:39 /usr/bin/nginx -> /www/server/nginx/sbin/nginx
获取编译参数

找到后需查看宝塔使用的版本号和编译参数,方便下载对应的版本和依赖包

nginx -V

nginx version: nginx/1.15.9
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.1b  26 Feb 2019
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-openssl-opt='enable-tls1_3 enable-weak-ssl-ciphers' --with-ld-opt=-ljemalloc

这能看见宝塔所用的nginx编译参数,保存下来会有用

下载所需的软件(源码)包

因随时间的推移可能会有新版本,请替换相应版本号下载

请一定保证pagespeed所对应的psol版本号相同

wget http://nginx.org/download/nginx-1.15.9.tar.gz
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v1.13.35.2-stable.tar.gz
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz

解压软件(源码)包

根据以上configure arguments后的信息将压缩包解压到/www/server/nginx/src/

tar -xzvf  v1.13.35.2-stable.tar.gz -C /www/server/nginx/src/
tar -xzvf  1.13.35.2-x64.tar.gz -C /www/server/nginx/src/incubator-pagespeed-ngx-1.13.35.2-stable
tar -zxvf nginx-1.15.9.tar.gz

解压完成之后就是安装了

编译安装

将之前configure arguments:后的参数全部复制并在最后写上pagespeed的源码位置

./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-openssl-opt='enable-tls1_3 enable-weak-ssl-ciphers' --with-ld-opt=-ljemalloc --add-module=/www/server/nginx/src/incubator-pagespeed-ngx-1.13.35.2-stable

make -j2       #这里的j2选项适用于多核cpu并行编译加快速度

make install

make upgrade

如果没有报错那么就安装完成了

配置并启用

启用pagespeed

在宝塔的站点文件内添加以下内容以启用pagespeed
主意此配置文件仅供参考,请根据自身情况修改

    # on 启用,off 关闭
    pagespeed on;
    # 重置 http Vary 头
    #pagespeed RespectVary on;
    # html字符转小写
    pagespeed LowercaseHtmlNames on;
    # 压缩带 Cache-Control: no-transform 标记的资源
    pagespeed DisableRewriteOnNoTransform off;
    # 相对URL
    pagespeed PreserveUrlRelativity on;
    # X-Header 值,用于判断是否生效
    pagespeed XHeaderValue "Powered By miku.ink";

    # 配置服务器缓存位置和自动清除触发条件(空间大小、时限)
    pagespeed FileCachePath /tmp/cache/ngx_pagespeed_cache;
    pagespeed FileCacheSizeKb 2048000;
    pagespeed FileCacheCleanIntervalMs 43200000;
    pagespeed FileCacheInodeLimit 500000;
    # 过滤规则
    pagespeed RewriteLevel PassThrough;

    # 过滤typecho的后台(可选配置,可参考使用)
    #pagespeed Disallow "*/admin/*";
    #pagespeed Disallow "*/login.php*";

    # 移除不必要的url前缀,开启可能会导致某些自动加载功能失效
    #pagespeed EnableFilters trim_urls;
    # 移除 html 空白
    pagespeed EnableFilters collapse_whitespace;
    # 移除 html 注释
    pagespeed EnableFilters remove_comments;
    # DNS 预加载
    pagespeed EnableFilters insert_dns_prefetch;
    # 压缩CSS
    pagespeed EnableFilters rewrite_css;
    # 合并CSS
    pagespeed EnableFilters combine_css;
    # 重写CSS,优化加载渲染页面的CSS规则
    pagespeed EnableFilters prioritize_critical_css;
    # google字体直接写入html 目的是减少浏览器请求和DNS查询
    #pagespeed EnableFilters inline_google_font_css;
    # 压缩js
    pagespeed EnableFilters rewrite_javascript;
    # 合并js
    pagespeed EnableFilters combine_javascript;
    # 优化内嵌样式属性
    pagespeed EnableFilters rewrite_style_attributes;
    # 压缩图片
    pagespeed EnableFilters rewrite_images;
    # 不加载显示区域以外的图片
    pagespeed LazyloadImagesAfterOnload off;
    # 图片预加载
    pagespeed EnableFilters inline_preview_images;
    # 移动端图片自适应重置
    pagespeed EnableFilters resize_mobile_images;
    # 图片延迟加载
    pagespeed EnableFilters lazyload_images;
    # 雪碧图片,图标很多的时候很有用
    pagespeed EnableFilters sprite_images;
    # 扩展缓存 改善页面资源的可缓存性
    pagespeed EnableFilters extend_cache;
启用tlsv1.3

宝塔配置文件中有ssl的配置,请找到,默认配置为:

    #HTTP_TO_HTTPS_END
    ssl_certificate    /etc/letsencrypt/live/xxx.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/xxx.com/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;

找到后在ssl_protocols项后新增TLSv1.3,具体改为

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

随后保存,默认应该已生效,没有生效的可以重载下配置文件

Last Modified: February 19, 2020