<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pagespeed on WLStack — Simple, Scalable Cloud Solutions</title><link>https://www.wlstack.com/en/tags/pagespeed/</link><description>Recent content in Pagespeed on WLStack — Simple, Scalable Cloud Solutions</description><generator>Hugo</generator><language>en-US</language><managingEditor>info@wlstack.com (WLSTACK)</managingEditor><webMaster>info@wlstack.com (WLSTACK)</webMaster><lastBuildDate>Thu, 18 Jan 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.wlstack.com/en/tags/pagespeed/index.xml" rel="self" type="application/rss+xml"/><item><title>nginx 1.25.0 pagespeed 安装</title><link>https://www.wlstack.com/en/blog/nginx-pagespeed-install/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><author>info@wlstack.com (WLSTACK)</author><guid>https://www.wlstack.com/en/blog/nginx-pagespeed-install/</guid><description>&lt;h1 id="前言">前言&lt;/h1>
&lt;p>遵从来自20世纪的呼唤，最近重新开始研究单体应用的极致的性能优化，在web应用加速来说，google和nginx曾经一度引领风骚，pagespeed+nginx的组合，一度成就了yottta这样被google花了5亿美金收购的公司，号称对web应用，实现了页面精简、html/css压缩，动态加速等。而这样的东西自从2018年后，似乎突然就不被重视了。
随着云和微服务的兴起，应用被拆分得越来越细，以至于，不再有人care在http1.0/1.1时代的C10K、C100K这样的挑战了。
性能不够，机器来凑，尤其是，使用云和k8s之后，没有了直接的硬件投入，起个服务和应用，api调用一下，鼠标点一点，几百上千的虚拟机或pod就起来了，而容器则动则几万几十万个，而这样的情况，短时间的成本可能已经在“人比机器贵”的黄金时代来说，不再引人注目了。长此以往，特别到了疫情后，大家的口袋都没钱的时候，才发现，原来不知不觉，在云上已经花了这么多钱，所以，鼓吹下云也好，继续上云也罢，理念的东西都不重要，重要的，还是经济效益，于是，单体应用的性能，理应重新得到重视。
而这时候，我才发现，nginx似乎也不再受欢迎，好多人都要换到caddyserver去，pagespeed更是几乎没什么人用了,连明日黄花，可能都算不上了。。毕竟现代前端框架，自身在build的时候，已经是各种裁剪优化了,甚至于，倾向于搞ssr（server side render）这样的歪门邪道（当然，一段时间是因为框架对搜索引擎过于不友好，搞出来的web，搜索引擎都收录不了。。哪来的用户，哪来的业务），服务器的计算资源，始终是有限的，而客户端，却是随着用户数增长而增长&amp;hellip;最主要的一点，服务器，是需要付费的，而用户侧的算力，是免费的.
好了，废话说了很多，很显然，在这个时候，来折腾这些一度落寞的玩意，可能会费时费力。
（有人会叫你去白嫖比人打包好的docker镜像或deb包），而我决定自力更生，丰衣足食。&lt;/p>
&lt;h1 id="安装环境">安装环境&lt;/h1>
&lt;ol>
&lt;li>OS:Centos 7.9
GCC:4.8.5
NGINX:1.25.0
PAGESPEED(NPS):1.13.35.2&lt;/li>
&lt;li>依赖：
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>包名&lt;/th>
 &lt;th>用途&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>wget&lt;/td>
 &lt;td>用于从网络下载文件&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc&lt;/td>
 &lt;td>C/C++ 编译器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc-c++&lt;/td>
 &lt;td>C++ 编译器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>zlib-devel&lt;/td>
 &lt;td>zlib 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libcurl-devel&lt;/td>
 &lt;td>libcurl 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>openssl-devel&lt;/td>
 &lt;td>OpenSSL 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>bzip2-devel&lt;/td>
 &lt;td>bzip2 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gmp-devel.x86_64&lt;/td>
 &lt;td>GNU Multiprecision Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>mpfr-devel.x86_64&lt;/td>
 &lt;td>MPFR Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libmpc-devel.x86_64&lt;/td>
 &lt;td>MPC Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libSM-devel.x86_64&lt;/td>
 &lt;td>X.Org SM 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libxml2-devel&lt;/td>
 &lt;td>libxml2 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc-gfortran.x86_64&lt;/td>
 &lt;td>Fortran 编译器（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libjpeg-turbo-devel.x86_64&lt;/td>
 &lt;td>libjpeg-turbo 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>openjpeg-devel&lt;/td>
 &lt;td>OpenJPEG 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libpng12-devel&lt;/td>
 &lt;td>libpng 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libtiff-devel&lt;/td>
 &lt;td>libtiff 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cmake3.x86_64&lt;/td>
 &lt;td>CMake 3 编译系统（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libtools-devel&lt;/td>
 &lt;td>libtools 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>yum-utils&lt;/td>
 &lt;td>yum 实用工具&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libffi-devel&lt;/td>
 &lt;td>libffi 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>jemalloc-devel.x86_64&lt;/td>
 &lt;td>jemalloc 内存分配器开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>jasper-devel&lt;/td>
 &lt;td>JasPer 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>tbb-devel&lt;/td>
 &lt;td>Threading Building Blocks 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libdc1394-devel&lt;/td>
 &lt;td>libdc1394 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gstreamer-devel.x86_64&lt;/td>
 &lt;td>GStreamer 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>blosc-devel&lt;/td>
 &lt;td>Blosc 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libaec-devel&lt;/td>
 &lt;td>libaec 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>brotli-devel&lt;/td>
 &lt;td>Brotli 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>giflib-devel&lt;/td>
 &lt;td>giflib 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gtk2-devel&lt;/td>
 &lt;td>GTK+ 2 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libaio-devel&lt;/td>
 &lt;td>libaio 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libsqlite3x-devel.x86_64&lt;/td>
 &lt;td>libsqlite3x 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>make&lt;/td>
 &lt;td>构建工具&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>eigen3-devel&lt;/td>
 &lt;td>Eigen3 线性代数库开发库&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ol>
&lt;h1 id="安装">安装&lt;/h1>
&lt;h2 id="安装依赖">安装依赖&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>yum install epel-release.noarch -y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>yum install wget gcc gcc-c++ zlib-devel libcurl-devel openssl-devel bzip2-devel gmp-devel.x86_64 mpfr-devel.x86_64 libmpc-devel.x86_64 libSM-devel.x86_64 libxml2-devel gcc-gfortran.x86_64 libjpeg-turbo-devel.x86_64 openjpeg-devel.x86_64 libpng12-devel.x86_64 libtiff-devel cmake3.x86_64 libtool-devel yum-utils libffi-devel jemalloc-devel.x86_64 jasper-devel.x86_64 tbb-devel libdc1394-devel gstreamer-devel.x86_64 blosc-devel libaec-devel brotli-devel.x86_64 giflib-devel.x86_64 gtk2-devel libaio-devel libsqlite3x-devel.x86_64 make eigen3-devel libpcre3-devel
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="下载安装包并解压">下载安装包并解压：&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span> wget -O nps.zip https://github.com/apache/incubator-pagespeed-ngx/archive/71e24c1c47113acb5924d8cb523d572b376e9dd0.zip &lt;span style="color:#f92672">&amp;amp;&amp;amp;&lt;/span> unzip nps
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget http://nginx.org/download/nginx-1.25.0.tar.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget -O psol.tar.gz https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="nginx编译注意点">nginx编译注意点&lt;/h2>
&lt;p>&lt;strong>LD_LIBRARY_PATH=../incubator-pagespeed-ngx-${PAGESPEED_VERSION}/usr/lib:/usr/lib 指定LD_LIBRARY_PATH到incubator-pagespeed-ngx-71e24c1c47113acb5924d8cb523d572b376e9dd0，以便编译pagespeed，71e24c1c47113acb5924d8cb523d572b376e9dd0即为上文下载的对应版本的pagespeed版本解压后的目录&lt;/strong>&lt;/p></description></item></channel></rss>