EC2上でWebサーバ LiteSpeedを使ってみる

2020.08.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサル部@大阪オフィスのTodaです。

AWSのEC2インスタンスでWebサーバを立ち上げる場合、どのようなソフトを利用していますか?Apache? Nginx?  2020年8月にQ-SuccessからWebサーバのシェアについて発表がありマイナビニュースさんが記事を出されていました。

Nginx系が増加し、Apache減少 - 8月Webサーバシェア

その中でLiteSpeedというWebサーバが5位にランクインしているのが気になり、実際にEC2にインストール、利用できる状態にしてみましたのでご紹介します。

LiteSpeedとは?

LiteSpeedはLiteSpeed Technologies社が開発したWebサーバでApacheと高い互換性を持ちつつ、パフォーマンスを大幅に上げたWebサーバになります。
提供は商用とオープンソースの2パターンに分かれています。

Apache互換ということでmod_rewrite、.htaccessなど多くの機能がそのまま利用できます。また操作が簡易に行えるように管理画面の機能が導入されています。

LiteSpeed

Webサーバの応答時間の比較は下記をご覧ください。
LiteSpeed (Comparing web server response time to requests)

実際にインストールしてみる

今回はLiteSpeedのオープンソース版であるOpenLiteSpeedをインストールします。

OpenLiteSpeed

前提条件

テスト用のインフラは構築済み。
EC2はAmazon Linux2をインストールした状態で利用します。

EPELリポジトリの追加

yumコマンドでLiteSpeedをインストールする場合、下記のパッケージが不足していますとエラーが表示されます。パッケージを取得できるようにEPELリポジトリを追加します。

  • lsphp73-7.3.21-1.el7.x86_64
  • lsphp73-imap-7.3.21-1.el7.x86_64
  • lsphp73-pecl-mcrypt-1.0.3-1.el7.7.3.x86_64
sudo amazon-linux-extras install -y epel

LiteSpeedリポジトリ追加と修正

LiteSpeedのサイトに掲載されているリポジトリを追加します。

sudo rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm

追加したリポジトリはCentOS用になるためAmazonLinux2で利用するとエラーになります。リポジトリの設定ファイルを調整して対応します。

sudo sed -i -e "s/\$releasever/7/g" /etc/yum.repos.d/litespeed.repo

LiteSpeedをインストール

yumコマンドを利用してインストールを行います。

sudo yum install openlitespeed

サービスの起動

インストールが完了すると下記コマンドにてLiteSpeedのサービスを起動する事ができます。

sudo /usr/local/lsws/bin/lswsctrl start

初期アカウント設定

LiteSpeedにはサーバの設定、状態確認ができる管理画面が導入されています。利用時にはアカウントとパスワードが必要なため下記コマンドで設定します。

sudo /usr/local/lsws/admin/misc/admpass.sh
User name [admin]: ログインアカウントID
Password : 任意パスワード
Retype password: 任意パスワード(確認)

アクセスとログイン

ブラウザで「http://【サーバのIP】:7080」にアクセスすることでログイン画面が表示されます。前の工程で作成したアカウントでログインが可能です。
※表示されない場合はセキュリティグループなどで 7080 のポートが制限を受けている場合があります。

日本語切換

LiteSpeedは日本語表示に対応をしています。管理画面上部の言語選択で切り替えます。

LiteSpeed言語設定切換

静的ページを公開してみる

HTTP(80)でアクセスできるようにリスナーを設定

ブラウザで静的ページを表示するためにLiteSpeedにHTTP(80)を設定します。設定は管理画面リスナー設定にておこないます。

リスナーの設定は最低限、下記設定をしています。
設定項目の内容で不明な箇所がある場合、項目名横の?マークにカーソルを合わせる事で詳細説明が表示されます。

  • リスナー名:リスナー名 (例:HTTPListener)
  • IPアドレス:アクセスできるIP (例:ANY or 192.168.1.*)
  • ポート:利用するポート番号 (例:80)
LiteSpeedリスナー設定入力

設定後、保存ボタンをクリックします。保存ボタンは上部に配置されています。

バーチャルホストにお試し用のホストを設定

バーチャルホスト設定にお試し用のホストを追加します。

バーチャルホストの設定は最低限、下記設定をしています。
設定ファイルは保存する前にシステムで作成されます、保存するパスを指定するようにします。

  • バーチャルホスト名:ホスト名
  • Virtual Host Root:公開ディレクトリパス (例:/var/www/html)
  • 設定ファイル:バーチャルホストの設定ファイルパス
    ※初期はファイル生成されるため、保存箇所の指定になります。
    ※LiteSpeedの推奨は $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf です。
LiteSpeedバーチャルホスト設定入力

設定を保存すると「設定ファイルが存在しません」とエラーが表示されます。
エラーメッセージ横のCLICK TO CREATEをクリックする事でファイルが生成されます。

LiteSpeedバーチャルホスト設定ファイル生成

リスナーのホストマップに追加

バーチャルホストの設定が完了したらリスナーにホストの関連付けをおこないます。作成したリスナーの設定内にあるバーチャルホストマップから設定します。

LiteSpeedリスナーへのホストマップ追加

バーチャルホストマップの設定でドメイン、サブドメインのバーチャルホストを設定する事ができます。ドメインの設定欄でワイルドカード指定で設定する事ができます。
今回はIPアドレスでアクセスをするため「*(アスタリスク)」を設定します。

  • バーチャルホスト:選択にて関連付けするバーチャルホストを指定
  • ドメイン:アクセス時のドメインをワイルドカードにて設定
    www.example.com: 指定のドメインのみ指定
    *.example.com: 指定ドメインのサブドメインも含めて指定
LiteSpeedリスナーへのホストマップ設定入力

設定の反映

管理画面上部のボタンをクリックすることで反映されます。

ブラウザでアクセス

サーバのパブリックIPアドレスでアクセスする事で表示する事ができました。

ブラウザ表示

まとめ

上記でLiteSpeedのインストールならびに静的コンテンツの掲載ができる状態になりました。
LiteSpeedにはPHP導入やHTTP/3、WordPressの高速表示などサポート機能が多く存在します。今回は細かい機能までご紹介できておりませんが近いうちにご紹介できればと考えております。