超高速Webサーバー「LiteSpeed」とは?
LiteSpeedとは?
LiteSpeedは、ApacheのようなWebサーバーで、高性能で効率的を特徴としており、特にPHPベースのアプリケーションに適しているらしい。リソース効率が良く、ページロードの高速化やサーバー負荷の軽減が期待できるらしい。
Apacheと高い互換性がある?
LiteSpeedは、Apacheの設定ファイル(httpd.confや.htaccessなど)をサポートしており、Apacheからスムーズに移行ができ、Apacheで設定されている多くの機能やモジュールがそのまま利用でき、既存のインフラを活かしながらLiteSpeedのメリットを享受できる、といわれているそうだが(?)実際は動かない。詳しくは後述の設定を参照のこと。
PHP
LiteSpeed では、 PHP を Apache の mod_php のように、LiteSpeed に最適化された LSAPI(LiteSpeed Server API) によるモジュール版として動作する。
LiteSpeed の LSAPI(LiteSpeed Server API) は、LiteSpeed 専用のインターフェースで、高速かつ効率的にPHPを処理する。LiteSpeed が PHP を呼び出す際に、lsphp というプロセスが利用され、これが LSAPI を通じて PHP を実行する。
lsphp は、マルチプロセス対応で、複数のプロセスで動作するため、高負荷にも対応できるらしい。PHP-FPM のように並列処理が可能で、大量のアクセスにも素早く応答できるのだとか。
PHPに関する具体的な設定方法は後述に譲る。
LiteSpeedのパフォーマンス
LiteSpeed は、非同期イベント駆動型アーキテクチャを採用しているため、Apache や Nginx に比べて、より多くの同時接続を効率的に処理できるらしい(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
に、user
、group
の設定があるが、これを変更しても変わらない(505エラーになる)。
- user:nobody
- group:nogroup
ヘルプには以下のように書かれている。これは最悪である。自己責任で自由に設定させて欲しい。
サーバープロセスが実行されるユーザー/グループを指定します。 これは、インストールの前にconfigureコマンドを実行するときに、 "--with-user"と "--with-group"というパラメータを使用して設定されます。これらの値をリセットするには、configureコマンドを再実行して再インストールする必要があります。
Let's Encryptは使えるのか?
使える。詳しくは仮想ホスト設定に記載してある。
LiteSpeedの問題点
Dockerで試してみた
Debianにインストールしてみた
LiteSpeedの管理画面の使い方
Discussion