什么是 OpenLiteSpeed?

OpenLiteSpeed (简称 OLS)是一个轻量,开源,高性能的 Web 服务器,是 LiteSpeed 的免费版本。兼容 Apache 的 .htaccess 配置。之前在国内缺少宣传,导致知道的人不多;近几年人气越来越高,像宝塔面板之类的软件也开始支持 OpenLiteSpeed。

当然目前与 OLS 集成最好的还是 CyberPanel,之前我也有写过安装教程;不过 CyberPanel 的后台有一些资源是从 jsDelivr 加载的,这导致了尽管面板完整安装,后台还是可能出现问题。

所以我们这里使用单纯的 OLS。

OpenLiteSpeed 真有那么神?

可能你和我一样,在网络上经常看到有关 LiteSpeed 服务器的“神迹”,仿佛一个 LiteSpeed 就能解决所有性能问题似的。

LiteSpeed 官方的 WordPress 性能测试图。图源:LiteSpeed Technologies。

其实 LiteSpeed(包括 OLS)能够实现高性能的原理就在于有个服务器级的缓存系统 LSCache,和其他的服务器级缓存(比如 ngin 的 FasfCGI Cache 以及 专门的 Varnish Cache 等等)没有本质区别。如果调教的好,nginx 是可以达到(甚至超过)OLS 的性能的。

但是与其他的服务器端缓存不同,其他的服务器端缓存(例如 FastCGI 缓存)都需要自己手动配置,而 OLS 环境下可以使用 LSCWP 等插件来实现对缓存的自动配置!

也就是说,如果你愿意付出时间精力,那么不管哪种服务器,对你来说都不会有太大区别;而如果你跟我一样,是个懒人,那么就选 OLS 吧!

安装 OpenLiteSpeed

以 Ubuntu 22.04 系统为例,先配置 OLS 软件源:

sudo wget -O - https://repo.litespeed.sh | sudo bash

添加完 OLS 源之后就可以进行安装:

sudo apt-get -y install openlitespeed

openlitespeed 这个包是有 lsphp83 的依赖的,可以不显式指定安装。当然,如果你的软件需要某些 PHP 组件的话,那就按照正常方法安装,不过要记得把所有的 php*- 都换成 lsphp*- 。

(别问我为什么源的地址都是 rpm 开头的,我也不知道)

然后重置一下管理员密码:

sudo /usr/local/lsws/admin/misc/admpass.sh

配置 OpenLiteSpeed

安装好之后,就可以访问 https://< 服务器 IP>:7080 来进行配置了。(云服务器记得在安全组 / 防火墙里放行 7080 端口)

第一次访问会蹦一个安全警告,原因是 OLS 后台默认用的自签名证书,不用理会,直接继续即可。

在这个界面里输入你刚才设置的账号密码:

第一次进入会打开类似于这样的一个界面(这里我已经进行过一些配置,所以可能会不太一样):

可以在右上角那里把 English 切换成中文。

注意,OLS 的后台本质是一个配置文件编辑器,不是我们熟悉的网站控制面板(比如宝塔一类的东西),不要被 GUI 骗了;所以说有许多地方需要我们配置。

配置默认文档

先转到服务器页面,往下翻找到索引文件设置。

设置成最常用的 index.html,index.php 就行。由于我希望静态页面的优先级高一点(这样方便设置维护页面),所以我把 index.html 放在了前面。可以根据自己的实际需要修改。

添加监听器

点击左侧的“监听器”,打开监听器配置,然后点击监听器列表左上角的加号添加一个监听器。

不一定要照着输入,重点关注“端口”和“加密连接”的配置就好。

如果是监听 HTTP 连接,那就像下图这样就行。

监听 HTTPS 连接,除了勾选加密连接外,还需要启用 REUSEPORT(这个是方便启用 QUIC 加速网站的)。

然后点击左上角的保存按钮保存监听器。

回到监听器界面,点击“HTTPS”监听器右边的放大镜图标打开详细配置。

然后转到“SSL”选项卡,配置一下默认的证书。(如果不配置的话会导致永远用不了 HTTPS,其实有点迷。)我是直接放了有效的证书,如果你担心扫 IP 的话,可以塞一个自签名证书。

所有操作完成之后,点击右上角 LSWS PID 下的重启按钮,平滑重启一下 OLS,使配置生效。

配置虚拟主机

点击左侧的“虚拟主机”,打开虚拟主机配置。

第一步操作还是一样,点击虚拟主机列表右上角的加号,添加一个虚拟主机。

虚拟主机创建时的可配置项很多,我们不需要都配置;重点关注下面几项就可以:

  • 虚拟主机名:给你自己看的,不是域名。起一个自己认识的名字就行。

  • 虚拟主机根目录:存放你网站文件的目录。必须是 nobody 这个 Linux 用户可以访问的目录,因此不能够放在家目录 ~ 下。

  • 配置文件:OLS 的配置文件位置。直接填入推荐的 $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf 就行。文件不存在不要紧,一会儿保存的时候,可以让 OLS 自动创建这个文件。

  • 启用脚本 / 外部应用程序:如果要运行 PHP 的话就选是。建议启用。

  • 访问管制:防止符号链接攻击。建议启用。

  • suEXEC User/suEXEC Group:PHP 运行要使用的用户和组。调整成虚拟主机根目录的所有者就行,确保 PHP 可以写入。

完成后点保存,会提示配置文件找不到。

不要担心,点一下“CLICK TO CREATE”就好;然后再点一次保存,就成功了。

如果你的网站有 SSL 证书,在这一步结束之后还需要配置证书。方法参考监听器的配置方法,在此不再赘述。

接着转到常规页面,往下拉找到索引文件设置。

因为我们已经在服务器级别上设置了索引文件,所以直接选择使用服务器索引文件就行。

接着转到重写页面,把启用重写和自动加载.htaccess 打开。

只有把这两个设置打开才能确保 OLS 的 Apache 兼容性是启用的!

所有操作完成后别忘了平滑重启 OLS 使配置生效。

将虚拟主机绑定至监听器

重新回到监听器页面,点击监听器名称右边的放大镜图标,进入监听器配置。

然后点击虚拟主机映射右上角的加号。

绑定的时候只需要配置两个项目,一个是虚拟主机,选择你刚刚创建的那个就好;另一个是域名,支持通配符,如果要绑定多个域名,就用英文的逗号把域名分隔开来。

完成之后别忘了平滑重启。

至此如果配置没有问题,域名也正确指向你的服务器的话,那么就可以查看网站了!

QUIC 问题排查

OLS 还有一个明星功能是对 HTTP/3 和 QUIC 的完整支持,对网站的提速效果也是非常明显的,并且 OLS 默认情况下会启用该功能。

但是可能当你配置好以上所有东西的时候,却发现打开网站提示 ERR_QUIC_PROTOCOL_ERROR!

这种现象在云服务器上特别常见,这是因为尽管传统的 Web 服务走的都是 TCP,QUIC 走的却是 UDP!这种情况下,只需要在安全组 / 防火墙里放行 UDP 上的 443 端口,就可以解决问题!

至此 OLS 配置完成!