超高速Webサーバー「LiteSpeed」とは?

2024/11/11に公開

LiteSpeedとは?

LiteSpeedは、ApacheのようなWebサーバーで、高性能で効率的を特徴としており、特にPHPベースのアプリケーションに適しているらしい。リソース効率が良く、ページロードの高速化やサーバー負荷の軽減が期待できるらしい。

Apacheと高い互換性がある?

LiteSpeedは、Apacheの設定ファイル(httpd.confや.htaccessなど)をサポートしており、Apacheからスムーズに移行ができ、Apacheで設定されている多くの機能やモジュールがそのまま利用でき、既存のインフラを活かしながらLiteSpeedのメリットを享受できる、といわれているそうだが(?)実際は動かない。詳しくは後述の設定を参照のこと。

PHP

LiteSpeed では、 PHPApachemod_php のように、LiteSpeed に最適化された LSAPI(LiteSpeed Server API) によるモジュール版として動作する。

LiteSpeedLSAPI(LiteSpeed Server API) は、LiteSpeed 専用のインターフェースで、高速かつ効率的にPHPを処理する。LiteSpeedPHP を呼び出す際に、lsphp というプロセスが利用され、これが LSAPI を通じて PHP を実行する。

lsphp は、マルチプロセス対応で、複数のプロセスで動作するため、高負荷にも対応できるらしい。PHP-FPM のように並列処理が可能で、大量のアクセスにも素早く応答できるのだとか。

PHPに関する具体的な設定方法は後述に譲る。

LiteSpeedのパフォーマンス

LiteSpeed は、非同期イベント駆動型アーキテクチャを採用しているため、ApacheNginx に比べて、より多くの同時接続を効率的に処理できるらしい(Nginxと一緒では?)。これにより、サーバーリソースの消費が少なく、トラフィックが多い環境でも高いパフォーマンスを発揮できるらしい。

実際のところ、静的ファイルならNginxとほぼ互角のようだ。ところが、PHPが動的に生成するコンテンツになると、LiteSpeedの方が速いようだ。これは後述する、LiteSpeedに組み込む専用のPHPだからだろう。(NginxはPHP-FPMにパスするので、そのロスがないのだろう)

また、VPSなどのリソースが少ない環境ほど、LiteSpeedが有利らしい。

ビルトインキャッシュ

LiteSpeedには、LSCacheという専用のキャッシュシステムが組み込まれており、静的ファイルと動的なページのキャッシュを効果的に管理できるらしい。PHP側でどのようにすれば良いのかは不明である。

セキュリティ:DoSやDDoSに強い

LiteSpeedには、DoS(サービス拒否攻撃)やDDoS攻撃に対する強力な保護機能があるらしい。管理画面には、DDoSでブロックしたIPアドレスの件数を表示する場所がある。(現在は0)

また、Webアプリケーションファイアウォール(WAF)も内蔵しているらしい(具体的な機能は不明)。
ModSecurityのルールセットに対応しており、Apacheで設定されているセキュリティポリシーを活用できるらしい。

リソース効率

CPUやメモリの使用量が少なく、低スペックのサーバーや仮想環境でも優れたパフォーマンスを発揮する。そのため、クラウド環境やVPSでの使用に適しており、コスト効率を極めて高めることができる。(すごい❗️)

LiteSpeedの種類

LiteSpeedにはいくつかのエディションが存在する。

  • OpenLiteSpeed:オープンソース版で、無料で利用可能。機能は限定されているが、小規模なサイトや開発環境に適している。
  • LiteSpeed Web Server(LSWS):商用版で、多くの機能やサポートが含まれている。商用版は主に企業向けで、大規模なトラフィックやパフォーマンスが要求されるサイト向け。

実行ユーザーとグループ

nobody, nogroupでは、PHPからファイルを作成した際に困る。httpd_config.confに、usergroupの設定があるが、これを変更しても変わらない(505エラーになる)。

  • user:nobody
  • group:nogroup

ヘルプには以下のように書かれている。これは最悪である。自己責任で自由に設定させて欲しい。

サーバープロセスが実行されるユーザー/グループを指定します。 これは、インストールの前にconfigureコマンドを実行するときに、 "--with-user"と "--with-group"というパラメータを使用して設定されます。これらの値をリセットするには、configureコマンドを再実行して再インストールする必要があります。

Let's Encryptは使えるのか?

使える。詳しくは仮想ホスト設定に記載してある。
https://zenn.dev/tomoakinagahara/articles/569c09a9cfcab0

LiteSpeedの問題点

https://zenn.dev/tomoakinagahara/articles/0b55723e41918b

Dockerで試してみた

https://zenn.dev/tomoakinagahara/articles/6c846f0a355fc2

Debianにインストールしてみた

https://zenn.dev/tomoakinagahara/articles/81f132967e0795

LiteSpeedの管理画面の使い方

https://zenn.dev/tomoakinagahara/articles/3bfdff21ffd5ba

Discussion