<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nginx on 浙江物链网络科技有限公司</title><link>https://www.wlstack.com/cn/tags/nginx/</link><description>Recent content in Nginx on 浙江物链网络科技有限公司</description><generator>Hugo</generator><language>zh-CN</language><managingEditor>info@wlstack.com (物链网络)</managingEditor><webMaster>info@wlstack.com (物链网络)</webMaster><lastBuildDate>Thu, 18 Jan 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.wlstack.com/cn/tags/nginx/index.xml" rel="self" type="application/rss+xml"/><item><title>nginx 1.25.0 pagespeed 安装</title><link>https://www.wlstack.com/cn/blog/nginx-pagespeed-install/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/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><item><title>Centos7 cacti spine php74 nginx安装配置</title><link>https://www.wlstack.com/cn/blog/centos7-cacti-spine-php-mysql-nginx/</link><pubDate>Fri, 22 Sep 2023 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/centos7-cacti-spine-php-mysql-nginx/</guid><description>&lt;h1 id="cacti是什么">cacti是什么&lt;/h1>
&lt;p>Cacti是一款功能完整的网络图形化解决方案，Cacti旨在利用RRDtool的数据存储以及图形化功能来给广大安全研究人员提供以下功能性帮助：&lt;/p>
&lt;ol>
&lt;li>远程和本地数据收集；&lt;/li>
&lt;li>设备扫描与发现；&lt;/li>
&lt;li>设备与图形创建自动化；&lt;/li>
&lt;li>自定义数据收集方法；&lt;/li>
&lt;li>用户、组和域访问控制；&lt;/li>
&lt;/ol>
&lt;p>所有的这些功能都封装在一个直观并易于使用的用户界面之中，而这种特性对于局域网安装配置以及包含数千台设备的复杂网络都有实际意义。&lt;/p>
&lt;p>本项目是Ian Berry于2000年初创建的一个高中研究项目，但目前已经发展成为上千万公司以及网络安全爱好者用于监控和管理他们企业网络以及数据中心的最佳解决方案了。&lt;/p>
&lt;h1 id="centos-7-安装-cacti">Centos 7 安装 cacti&lt;/h1>
&lt;h2 id="安装基础依赖和数据库">安装基础依赖和数据库&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>基础依赖：&lt;/strong>
先安装对应的yum repo，避免部分依赖rpm包找不到&lt;/li>
&lt;/ol>
&lt;pre tabindex="0">&lt;code>yum install epel-release.noarch -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
&lt;/code>&lt;/pre>&lt;p>注意，这里使用了基于remi库封装的php rpm包，所以在后续使用的时候，需要考虑remi库 rpm包安装的路径问题，否则可能出现cmd.php/poller.php运行失败的问题。
接下来安装基础库：&lt;/p>
&lt;pre tabindex="0">&lt;code>yum install wget gcc gcc-c++ zlib-devel wget 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 bzip2-devel libjpeg-turbo-devel.x86_64 openjpeg-devel.x86_64 libpng12-devel.x86_64 libtiff-devel cmake3.x86_64 autoconf automake libtool yum-utils libSM-devel.x86_64 bzip2-devel libffi-devel jemalloc-devel.x86_64 gperftools-devel.x86_64 jasper-devel.x86_64 libxml2-devel 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 gperftools-devel.x86_64 make eigen3-devel ntp ntpdate perl-devel perl-CPAN perl-YAML fontconfig ttmkfdir -y
&lt;/code>&lt;/pre>&lt;p>看得出来，我们安装了很多图像图像乃至视频的包。如果觉得多余，可以把gstream相关不安装，不过ntp/ttmk这些时间、字体相关的，还是装一下。
2. 安装数据库
然后我们来安装数据库服务器。这里我们选择安装mysql5.7。&lt;/p></description></item><item><title>librenms部署到cloudflare</title><link>https://www.wlstack.com/cn/blog/librenms-cloudflare/</link><pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/librenms-cloudflare/</guid><description>&lt;h1 id="librenms是什么">Librenms是什么&lt;/h1>
&lt;p>LibreNMS是一个开源的网络监控和自动化工具。它可以帮助管理员监控和管理他们的网络设备、服务器和应用程序。LibreNMS提供了一个综合的平台，用于监控网络设备的性能、可用性和健康状况，以及生成报告和警报。它支持SNMP（Simple Network Management Protocol）来收集设备的指标和状态信息，并提供了一个用户友好的Web界面，供管理员查看和分析监控数据。&lt;/p>
&lt;p>LibreNMS具有许多功能，包括实时图表和可视化，用于显示网络设备的性能和趋势，以及提供历史数据的存档。它支持自动发现网络设备和应用程序，并提供基于规则的警报和通知功能，以便管理员在出现问题时及时采取行动。此外，LibreNMS还提供了强大的API，可以与其他系统和工具集成，以实现自动化和定制化的监控和管理任务。&lt;/p>
&lt;h1 id="librenms的架构">librenms的架构&lt;/h1>
&lt;p>LibreNMS是使用PHP语言开发的，基于Laravel框架构建的网络监控系统。Laravel是一个流行的开源PHP框架，它提供了许多工具和组件，用于快速开发高质量的Web应用程序。&lt;/p>
&lt;p>使用Laravel作为开发框架，LibreNMS能够充分利用Laravel提供的功能和特性，包括路由管理、数据库抽象层、会话管理、认证和授权、模板引擎等。这些功能使得LibreNMS的开发过程更加高效、可维护和可扩展&lt;/p>
&lt;h1 id="为什么部署到cloudflare">为什么部署到cloudflare&lt;/h1>
&lt;p>Cloudflare 是一家提供内容分发网络服务、DDoS 保护、互联网安全性和分布式域名服务器服务的公司。其服务旨在保护和加速任何互联网应用程序，而无需更改应用程序的代码。以下是 Cloudflare 的主要功能：&lt;/p>
&lt;p>内容分发网络 (CDN): Cloudflare 的 CDN 通过其全球数据中心网络存储网站的静态内容，从而使访问者能够从最近的数据中心获取内容，加速页面加载速度。&lt;/p>
&lt;p>DDoS 保护: Cloudflare 可以识别并吸收大量的请求，从而保护网站不受恶意攻击。&lt;/p>
&lt;p>Web 安全性: Cloudflare 提供 Web 应用程序防火墙 (WAF)、安全套接字层 (SSL) 加密等功能，以增强网站的安全性。&lt;/p>
&lt;p>智能路由: Cloudflare 的 Argo Smart Routing 能够确保用户的请求通过最快的路径到达目的地。&lt;/p>
&lt;h1 id="部署到cloudflare的优势">部署到cloudflare的优势：&lt;/h1>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>安全性:&lt;/strong> LibreNMS 作为一个网络管理和监控工具，可能会面临各种网络攻击，特别是 DDoS 攻击。Cloudflare 可以为 LibreNMS 提供额外的安全层，保护它免受这些攻击。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>可访问性:&lt;/strong> 使用 Cloudflare，即使 LibreNMS 的主服务器出现问题，用户仍然可以通过 Cloudflare 的缓存数据访问 LibreNMS 的某些信息。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>性能:&lt;/strong> Cloudflare 的 CDN 可以加速 LibreNMS 的在全球范围内的访问，特别是当你拥有一个跨地域的协作或合作的时候，确保你和你的合作伙伴能够快速访问LibrenNMS以获得网络用量和简况状况显得尤为重要。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>简化配置&lt;/strong>: 对于那些不熟悉web服务安全配置的用户，使用 Cloudflare 可以简化 LibreNMS 的安全和性能优化配置，确保LibreNMS的相对安全性和管理的便捷性。&lt;/p></description></item></channel></rss>