我的 OpenLiteSpeed 从开始到放弃之经历

news2024/11/26 2:38:36

昨晚下定决心放弃 OpenLiteSpeed 了,从开始到放弃历时七天。总结下来放弃 OpenLiteSpeed 主要是实在不适合明月当前的需要,用起来不是锦上添花而是个累赘了都,今天明月就给大家总结分享一下这次 OpenLiteSpeed 从开始到放弃的经历。

我的 OpenLiteSpeed 从开始到放弃之经历

一、Nginx 的 Rewrite 规则无法转换兼容

明月对 OpenLiteSpeed 产生兴趣主要听说其优秀的 PHP 执行效率以及应对大流量时候的平稳,从安装开始(可参考【正式在国内阿里云服务器上使用 OpenLiteSpeed 了】一文)就已经体会到 OpenLiteSpeed 的另类之处,在随后加入了 7 个 WordPress 站点(不同内容、不同主题、不同插件)后,就发现了一个“顽疾”问题,基本是无解。那就是一个 Nginx 的 rewrite 规则的转换问题!

我的 OpenLiteSpeed 从开始到放弃之经历

这个 rewrite 规则主要是为了实现 timthumb.php 裁剪的文章缩略图动态链接为静态化的,具体效果大家可以参考本博客首页、文章列表页的文章缩略图片网址即可,这么做的目的就是能更好的利用 CDN 缓存规则优化网站载入速度(实测效果明显提速出众),是 Dragon 主题的特色之一(也是明月一直都在推荐 Dragon 主题的主要原因)。谁能想到就这么一条 Nginx rewrite 规则竟然无法转换到 OpenLiteSpeed 上使用生效:

rewrite ^/timthumb/([0-9A-Za-z]+)/w/([0-9]+)/h/([0-9]+)/q/([0-9]+)/zc/([0-9])/a/([a-z]+)/spm/([0-9A-Za-z]+)\.([0-9a-z]+)$ /wp-content/themes/dragon/functions/timthumb.php?src=$1&w=$2&h=$3&q=$4&zc=$5&a=$6&spm=$7;

明月用了两天时间查阅大量的资料,甚至在 OpenLiteSpeed 社区里求助,都没有找到解决办法,到现在都已经过去四天了,依然是没有看到能解决的希望,OpenLiteSpeed 官方人员也是无能为力,虽然 OpenLiteSpeed 延续的是 Apache 的重写规则,但就这个 rewrite 规则无法兼容和转换成功。这就带来了 SEO 和页面载入速度两个问题,搜索引擎开始不断的回源抓取已经收录的伪静态缩略图链接,都给返回 404 错误了;每次载入页面都只能 timthumb.php 动态请求的方式裁剪图片,造成某些站点首页 Ctrl+F5 强制刷新一次就给服务器上的 OpenLiteSpeed 造成了直接宕机的负载飙升:

我的 OpenLiteSpeed 从开始到放弃之经历

试问有几个国内云服务器经得起这种负载飙升呀?

选择 OpenLiteSpeed 是尽量发挥云服务器性能的,不是来让负载飙升的,更不是来要求升级服务器配置的,为此明月也试图通过调整 OpenLiteSpeed、PHP 配置缓解这种情况,这就引出来了第二个无解的“顽疾”。

二、OpenLiteSpeed 的 LSAPI 调用 PHP 机制

理论上 OpenLiteSpeed 的 LSAPI 运行 PHP 速度会更快,但明月感觉 OpenLiteSpeed 好像忽略了服务器承受能力极限的问题,在配置里设定了 PHP_LSAPI_CHILDREN limit 限制的变量直接被无视了都,依旧会瞬间出现 lsphp 进程执行拥堵的问题,刚开始是 Ctrl+F5 强制刷新造成的,最后竟然直接就是正常载入首页都不行了。

我的 OpenLiteSpeed 从开始到放弃之经历

并且 PHP 明明开启了 OPCache,不是去调用 OPCache 缓存,而是依旧直接调用 lsphp 进程执行 PHP 代码,就算是 WordPress 上已经启用了 LiteSpeed Cache 插件也依旧如故,也不知道给 PHP 开启 OPCache 有啥意义?总不能为了 OpenLiteSpeed 而去刻意精简网站上首页布局吧?

我的 OpenLiteSpeed 从开始到放弃之经历

三、MySQL/MariaDB 数据库缺乏原生支持

安装过 OpenLiteSpeed 的都知道,OpenLiteSpeed 环境下数据库是需要独立安装和配置的,OpenLiteSpeed 面板上也没有管理数据库的接口基本算是两个独立的 Linux 应用,这样的逻辑下自然也没有针对性的数据库配置了,使用过 LNMP 的都知道,每次安装部署完数据库的配置都已经默认配置好了,虽然部分配置参数需要根据具体硬件配置进行调整,但也总比配置一片空白,完全需要自己手动一个一个参数加入高效了。

我的 OpenLiteSpeed 从开始到放弃之经历

OpenLiteSpeed 里就是这么尴尬,并且官方文档里也没有建议的数据库配置参考,社区里官方人员都是以及数据库不属于 OpenLiteSpeed 组件为由拒绝回答帮助。这样的情况明月只能自己配置数据库参数了,而参考 LNMP 环境的数据库配置,运行起来极不稳定,刚开始的三天数据库进程几乎每天都会莫名其妙的死掉,还大部分都是凌晨至早上这个时间段,每次看到网站数据库连接报错给人的感觉非常的不好,虽然最后给数据库加入了自动重启算是勉强解决了,但这样的运维环境真的是让人放心不下。

我的 OpenLiteSpeed 从开始到放弃之经历

还是这个负载看着舒服!

四、总结

综上所述,无论是 OpenLiteSpeed 稳定版还是预览版目前都不适合明月的运维需求,勉强用下去几乎也就没有什么用户体验之说了,rewrite 规则不仅仅带来的是速度下降的问题,还会有安全上的隐患,随便一个 CC 攻击利用一下都可以几分钟内轻松让服务器挂掉。PHP 的问题更是头疼,但凡稍微布局复杂一些、内容多一些的首页都有可能造成可怕的负载飙升。数据库的不稳定,连定时自动备份都受到影响了,这就真的是不能接受了,总不能天天盯着服务器吧?所以,昨天明月果断放弃了 OpenLiteSpeed,重新用回纯净的 LNMP 环境,上述所有的问题麻烦都没有了!

明月感觉 OpenLiteSpeed 可能在某些简单的应用场景表现优秀,比如:1-2 个网站、配置上没有特殊需求的用起来还是很不错的,但并不适用明月,还好明月专门抽出时间在阿里云服务器上测试这一周,要不还真的是发现不了这些“顽疾”。这里建议大家还是要遵循“实践才是检验真理的唯一标准”这句至理名言,不要盲目跟从。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1671610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

福建医疗器械展/2024厦门国际医疗器械展览会重磅来袭

2024中国(厦门)国际医疗器械展览会 时 间:2024年11月1-3日 November 1-3, 2024 地 点:厦门国际会展中心 Xiamen International Conference & Exhibition Center ​ ◆组织机构 主办单位: 中国技术市场协会医…

【QT】QT环境搭建

本专栏内容为:QT学习专栏 通过本专栏的深入学习,你可以了解并掌握QT。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:QT 🚚代码仓库:小小unicorn的代码仓库🚚 🌹&#x1f…

LeetCode 700.二叉搜索树中的搜索

LeetCode 700.二叉搜索树中的搜索 1、题目 题目链接:700. 二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则…

公式识别软件免费的有哪些?简单好用的有三款

公式识别软件免费的有哪些?在数字化时代,公式识别软件已经成为科研、教育等领域不可或缺的工具。这些软件能够准确地将图像中的公式转化为可编辑的文本格式,极大地提高了工作效率。为了帮助大家轻松应对公式识别的挑战,今天本文就…

【数据结构】详解队列

现在我们来掌握一下队列!如果有对往期知识有不足地方,可翻阅之前文章哦! 个人主页:小八哥向前冲~-CSDN博客 所属专栏:数据结构【c语言版】_小八哥向前冲~的博客-CSDN博客 栈和队列的实现其实都是对你顺序表和链表的检验…

PCIE协议-2-事务层规范-MEM/IO/CFG request rules

2.2.7 内存、I/O和配置请求规则 以下规则适用于所有内存、I/O和配置请求。每种类型的请求还有特定的额外规则。 所有内存、I/O和配置请求除了常见的头标字段外,还包括以下字段:requester ID[15:0]和Tag[9:0],形成事务ID。Last DW BE[3:0] a…

【面试经典题】环形链表

个人主页:一代… 个人专栏:数据结构 在面试中我们经常会遇到有关链表的相关题目,面试官通常会对题目给出拓展 下面我就两个leetcode上的一个双指针的题目为例,并对其进行拓展 题目链接:环形链表 题目描述&#xf…

pytest(二)

1.pytest-html⽣成报告 Pytest-HTML 是⼀个插件,它可以⽣成漂亮且易于阅读的 HTML 测试报告。下⾯是使⽤ pytest-html ⽣成报告的步骤: 1. 安装 pytest-html 插件: pip install pytest-html 2. 运⾏测试并⽣成报告 pytest --htmlr…

Java全局异常处理,@ControllerAdvice异常拦截原理解析【简单易懂】

https://www.bilibili.com/video/BV1sS411c7Mo 文章目录 一、全局异常处理器的类型1-1、实现方式一1-2、实现方式二 二、全局异常拦截点2-1、入口2-2、全局异常拦截器是如何注入到 DispatcherServlet 的 三、ControllerAdvice 如何解析、执行3-1、解析3-2、执行 四、其它4-1、设…

初探 JUC 并发编程:独占锁 ReentrantLock 底层源码解析

本篇是关于 JUC 并发包中独占锁 ReentrantLock 底层源码的解析,在阅读之前需要对 AQS 抽象队列有基本的了解。 文章目录 1.1 类图结构1.2 获取锁1)void lock() 方法2)void lockInterruptibly() 方法3)boolean tryLock() 方法4&am…

jenkins+gitlab+sonar自由风格项目配置

新建项目&基本配置 gitlab侧配置 sonar.projectKeytest_sonar sonar.projectNametest_sonar sonar.projectVersion1.0 sonar.sources. sonar.exclusionssrc/layout/** sonar.sourceEncodingUTF-8 sonar.nodejs.executable/app/nodejs/node-v16.20.2-linux-x64/bin/node配置…

Git详解之六:Git工具

现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程。你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力。 接下来你将领略到一些 Git 可以实现的非常强大的功能&…

Web APIs(获取元素+操作元素+节点操作)

目录 1.API 和 Web API 2.DOM导读 DOM树 3.获取元素 getElementById获取元素 getElementsByTagName获取元素 H5新增方法获取 获取特殊元素 4.事件基础 执行事件 操作元素 修改表单属性 修改样式属性 使用className修改样式属性 获取属性的值 设置属性的值 移除…

视频模糊变清晰,这13个工具总有一个能帮到你,收藏好

1、Topaz Video Enhance AI 这是一款非常专业的视频分辨率放大软件,使用来自多个帧的信息来实现视频升级、去噪、去隔行扫描和恢复的结果。 Topaz Video Enhance AI可以将视频放大和增强8K分辨率的镜头,并提供真实的细节和动作一致性。它采用AI技术实现…

数据库面试总结

数据库相关 mysql使用的函数 字符相关: concant() 连接字符 trim()去除字符的首尾空格 space(n) 返回n个空格 char_length() 返回字符的个数 ucase()/upper()将字符串 s 的所有字母变成大写字母 lcase()/lower() 将字符串 s 的所有字母变成小写字母 substr/substring/mid(s, …

prophet时间序列模型水质预测应用

前言 此前已经分析了,ARIMA 模型在水质预测中的应用,今天用 prophet 模型测试下在水质预测中的效果。 Prophet 简介 Prophet 是 Facebook 于2017年开源的一个时间序列预测框架,特别适合于处理具有明显趋势性和季节性的数据。该模型设计初衷…

AI算法-高数5.2-线性代数-向量间的线性相关、无关定义和结论

宋浩老师课程:3.2 向量间的线性关系(二)_哔哩哔哩_bilibili 线性相关、不相关结论: 判断线性有关\无关,转化成方程组: 判断条件> 向量线性相关、无关的本质是:除0外能不能找到非0的数据。

【吊打面试官系列】Java高并发篇 - 如何创建守护线程?

大家好,我是锋哥。今天分享关于 【如何创建守护线程?】面试题,希望对大家有帮助; 如何创建守护线程? 使用 Thread 类的 setDaemon(true)方法可以将线程设置为守护线程,需要注意的是,需要在调用 …

代码缺陷扫描神器——FindBugs

FindBugs目前,主要有三种形式使用,GUI形式、插件形式、Ant脚本形式,在这里只讲述FindBugs作为插件,在Android Studio中的应用。 目录 一、FindBugs基础知识 二、FindBugs使用进阶 网络安全学习路线 (2024最新整理&am…

nginx目录枚举修复手册

nginx目录枚举修复手册 漏洞背景 修复方式: ssh zujian2 sudo vi /data/apps/nginx/conf/conf.d/default.conf server {