これは、なにをしたくて書いたもの?
ちょっと前から、LiteSpeedやOpenRestyというWebサーバーが気になっていまして。
去年の年末にも出ていましたしね。
12月Webサーバシェア調査、Nginxが大量にシェア失う | TECH+
LiteSpeedについてさらっと眺めたりしていたので、せっかくならドキュメント等の情報を書き残しておくというくらいの
目的でメモしておきます。
なお、OpenRestyはnginxをベースにLua拡張を行ったもののようです。
nginxにモジュールを追加したもの、とも言えそうです。
ちなみに、どちらのWebサーバーのサイトを見ていて思ったのですが、たぶん自分はApacheやnginxを使っていくような
気はします。なので、今回は軽く走り書き程度にしておきます。
LiteSpeed
今回は、LiteSpeedについて取り扱います。
LiteSpeed | Internet. Accelerated. - LiteSpeed Technologies
LiteSpeedにはオープンソース版(OpenLiteSpeed)とEnteriprise版(LSWS Enterprise)があり、その違いは
こちらのページにまとめられています。
OpenLiteSpeed vs. LiteSpeed Enterprise - LiteSpeed Technologies
OpenLiteSpeedの情報はこちら。
OpenLiteSpeed - Open Source - LiteSpeed Technologies
LSWS Enterpriseの情報はこちら。
LiteSpeed Web Server - Apache Alternative - LiteSpeed Technologies
OpenLiteSpeedのページを見ると、以下が特徴なようです。
- イベントドリブンなアーキテクチャー
- HTTP/3、HTTP/2のサポート
- Apache mod_rewriteとの互換性
- PHPサポート
- 管理インターフェース
- セキュリティ
- キャッシュ
- CMSアクセラレーション
- ModSecurityとの統合
- マルチスレッドモジュール
LSWS Enterpriseになると、これに以下のようなものが加わります。
機能比較の完全なリストは、こちらを見ましょう。
OpenLiteSpeed vs. LiteSpeed Enterprise - LiteSpeed Technologies
Enterprise版になると、Apacheからより移行しやすくなるみたいですね。
キャッシュは、LSCache(LiteSpeed Cache)というものがLiteSpeedに組み込まれているようです。
プラグインもあり、主にECやCMS向けのものが多そうですね。
OpenLiteSpeed
今回は、オープンソース版のOpenLiteSpeedを見ていきます。www.litespeedtech.com
とは別のドメインに、Webサイトが
設けられています。
ドキュメント等の情報は、こちら。
Get OpenLiteSpeed Help with the Knowledge Base • OpenLiteSpeed
インストール要件を見ると、必要なスペックは少なくても大丈夫そうですが、OSはLinux、FreeBSD、macOSが
対応範囲となるようです。
Minimum System Requirements • OpenLiteSpeed
環境
今回の環境は、Ubuntu Linux 20.04 LTSです。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal $ uname -srvmpio Linux 5.4.0-99-generic #112-Ubuntu SMP Thu Feb 3 13:50:55 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
OpenLiteSpeedをインストールする
OpenLiteSpeedのインストール方法は、OpenLiteSpeedが提供するリポジトリからのパッケージインストールと
コンパイル済みのtar.gz
ファイルからインストールする方法があります。
Install OpenLiteSpeed from LiteSpeed Repositories • OpenLiteSpeed
How to Install OpenLiteSpeed from Binary • OpenLiteSpeed
今回は、パッケージインストールを選択します。
Install OLS from LiteSpeed Repositories / Debian and Ubuntu Installation
リポジトリの追加。
$ sudo wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash
OpenLiteSpeedのインストール。
$ sudo apt install openlitespeed
ちなみに、この時にPHPをインストールしようとしますね。
以下の追加パッケージがインストールされます: aspell aspell-en dictionaries-common emacsen-common enchant hunspell-en-us libaspell15 libc-client2007e libenchant1c2a libhunspell-1.7-0 libjpeg-turbo8 libjpeg8 libwebp6 libxpm4 libzip5 lsphp73 lsphp73-common lsphp73-imap lsphp73-json lsphp73-mysql lsphp73-opcache mlock php-common php-readline php7.4-common php7.4-readline rcs 提案パッケージ: aspell-doc spellutils wordlist hunspell openoffice.org-hunspell | openoffice.org-core uw-mailutils libenchant-voikko php-pear php-user-cache 以下のパッケージが新たにインストールされます: aspell aspell-en dictionaries-common emacsen-common enchant hunspell-en-us libaspell15 libc-client2007e libenchant1c2a libhunspell-1.7-0 libjpeg-turbo8 libjpeg8 libwebp6 libxpm4 libzip5 lsphp73 lsphp73-common lsphp73-imap lsphp73-json lsphp73-mysql lsphp73-opcache mlock openlitespeed php-common php-readline php7.4-common php7.4-readline rcs
今回は、そのままインストールすることにします。
PHP 7.3、PHP 7.4がインストールされましたが、PHP 8.0も使えそうですね。
$ apt search lsphp80 ソート中... 完了 全文検索... 完了 lsphp80/focal 8.0.14-1+focal amd64 server-side, HTML-embedded scripting language (LSAPI binary) lsphp80-apcu/focal 5.1.20-1+focal amd64 APC User Cache for PHP lsphp80-common/focal,focal 8.0.14-1+focal all Common files for packages built from the PHP source lsphp80-curl/focal 8.0.14-1+focal amd64 CURL module for PHP lsphp80-dbg/focal 8.0.14-1+focal amd64 Debug symbols for LSPHP70 lsphp80-dev/focal 8.0.14-1+focal amd64 Files for PHP70 module development 〜省略〜
なお、インストールした時点でsystemd制御下で起動しています。
$ sudo systemctl status lsws ● lshttpd.service - OpenLiteSpeed HTTP Server Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-02-16 01:32:11 JST; 2min 40s ago Process: 4969 ExecStart=/usr/local/lsws/bin/lswsctrl start (code=exited, status=0/SUCCESS) Main PID: 5011 (litespeed) CGroup: /system.slice/lshttpd.service ├─5011 openlitespeed (lshttpd - main) ├─5022 openlitespeed (lscgid) ├─5051 openlitespeed (lshttpd - #01) └─5052 openlitespeed (lshttpd - #02) 2月 16 01:32:09 ubuntu2004.localdomain systemd[1]: Starting OpenLiteSpeed HTTP Server... 2月 16 01:32:09 ubuntu2004.localdomain lswsctrl[4969]: [OK] litespeed: pid=5011. 2月 16 01:32:11 ubuntu2004.localdomain systemd[1]: Started OpenLiteSpeed HTTP Server.
起動、停止のコントロールは、systemctl
を使うことになりますね。
Control OpenLiteSpeed from the Command Line • OpenLiteSpeed
停止。
$ sudo systemctl stop lsws
起動。
$ sudo systemctl start lsws
なお、systemctl status
の結果を見るとわかるのですが。
lsws
で操作しますが実際には/etc/systemd/system/lshttpd.service
が実体ですね。
OpenLiteSpeedは8088ポートでリッスンしているようなので、http://[OpenLiteSpeedが動作しているサーバー]:8088
に
アクセスしてみると、こんなページが現れます。
デモページや
ドキュメントなどへのリンクがあって、まあ親切です。
PHPのデモページでは、PHPが動作していることが確認できます。PHPが7.3と古いですが。
また、7080ポートでもリッスンしていて、こちらにアクセスすると管理用のWeb UIを見ることができます。
ドキュメントはこちら。
OpenLiteSpeed WebAdmin Console • OpenLiteSpeed
さて、設定ファイルなどの置き場所が気になるところですが、これは/usr/local/lsws
配下にまとまっているようです。
$ ll /usr/local/lsws 合計 140 drwxr-xr-x 23 root root 4096 2月 16 01:31 ./ drwxr-xr-x 11 root root 4096 2月 16 01:31 ../ drwxr-xr-x 6 root root 4096 2月 16 01:31 Example/ -rw-r--r-- 1 root root 35147 10月 6 02:17 GPL.txt -rw-r--r-- 1 root root 4 10月 6 02:17 PLAT -rw-r--r-- 1 root root 7 10月 6 02:17 VERSION drwxr-xr-x 4 root root 4096 2月 16 01:31 add-ons/ drwxr-xr-x 9 root root 4096 2月 16 01:31 admin/ -rw-r--r-- 1 root root 41 10月 6 02:17 adminpasswd drwxr-xr-x 2 nobody nogroup 4096 2月 16 01:33 autoupdate/ drwxr-xr-x 2 root root 4096 10月 6 02:17 backup/ drwxr-xr-x 2 root root 4096 2月 16 01:31 bin/ drwxr-xr-x 2 nobody nogroup 4096 2月 16 01:32 cachedata/ drwxr-xr-x 2 nobody nogroup 4096 2月 16 01:37 cgid/ drwxr-x--- 5 lsadm nogroup 4096 2月 16 01:32 conf/ drwxr-xr-x 6 root root 4096 2月 16 01:31 docs/ drwxr-xr-x 2 root root 4096 2月 16 01:31 fcgi-bin/ drwxr-xr-x 2 root root 4096 10月 6 02:17 gdata/ drwxr-xr-x 2 root root 4096 10月 6 02:17 lib/ drwxr-x--- 2 root nogroup 4096 2月 16 01:37 logs/ drwxr-xr-x 7 root root 4096 2月 16 01:31 lsphp73/ drwxr-xr-x 2 root root 4096 2月 16 01:31 lsrecaptcha/ drwxr-xr-x 2 root root 4096 2月 16 01:32 modules/ drwxr-xr-x 2 root root 4096 10月 6 02:17 php/ drwxr-xr-x 2 lsadm lsadm 4096 10月 6 02:17 phpbuild/ drwxr-xr-x 4 root root 4096 2月 16 01:31 share/ drwxr-xr-x 3 nobody nogroup 4096 2月 16 01:32 tmp/
OpenLiteSpeed Configuration Examples • OpenLiteSpeed
設定ファイルは、このあたりにあります。
$ sudo find /usr/local/lsws/conf -type f /usr/local/lsws/conf/httpd_config.conf.txt /usr/local/lsws/conf/mime.properties0 /usr/local/lsws/conf/httpd_config.conf0,v /usr/local/lsws/conf/vhosts/Example/htpasswd /usr/local/lsws/conf/vhosts/Example/htgroup /usr/local/lsws/conf/vhosts/Example/vhconf.conf0,v /usr/local/lsws/conf/vhosts/Example/vhconf.conf /usr/local/lsws/conf/vhosts/Example/vhconf.conf0 /usr/local/lsws/conf/vhosts/Example/vhconf.conf.txt /usr/local/lsws/conf/httpd_config.conf0 /usr/local/lsws/conf/httpd_config.conf /usr/local/lsws/conf/mime.properties /usr/local/lsws/conf/templates/ccl.conf0 /usr/local/lsws/conf/templates/rails.conf /usr/local/lsws/conf/templates/rails.conf.txt /usr/local/lsws/conf/templates/ccl.conf /usr/local/lsws/conf/templates/ccl.conf.txt /usr/local/lsws/conf/templates/ccl.conf0,v /usr/local/lsws/conf/templates/rails.conf0 /usr/local/lsws/conf/templates/rails.conf0,v /usr/local/lsws/conf/mime.properties0,v
そういえば、インストールしたバージョンがわかっていませんでした。こちらで確認できそうです。
$ /usr/local/lsws/bin/lshttpd --version LiteSpeed/1.7.14 Open module versions: modgzip 1.1 cache 1.62 modinspector 1.1 uploadprogress 1.1 mod_security 1.4 (built: Mon Oct 4 19:06:44 UTC 2021) module versions: modgzip 1.1 cache 1.62 modinspector 1.1 uploadprogress 1.1 mod_security 1.4
メインの設定ファイルはこちらなのですが
/usr/local/lsws/conf/httpd_config.conf
デフォルトでVirtualHostが構成されていて、こちらも合わせて見ることになるでしょう。
/usr/local/lsws/conf/vhosts/Example/vhconf.conf
DocumentRootなどは、/usr/local/lsws/conf/httpd_config.conf
を見るとわかりそうです。
virtualHost Example{ vhRoot Example/ allowSymbolLink 1 enableScript 1 restrained 1 maxKeepAliveReq smartKeepAlive setUIDMode 0 chrootMode 0 configFile conf/vhosts/Example/vhconf.conf }
8088ポートにアクセスしていた時に表示していたページは、こちらということになりますね。
/usr/local/lsws/Example/html/index.html
ログはこちら。OpenLiteSpeed全体のログとVirtualHostのログは、それぞれ別になっているようですね。
$ sudo ls -l /usr/local/lsws/logs/ 合計 28 -rw-r----- 1 nobody nogroup 0 2月 16 01:37 access.log -rw-r--r-- 1 nobody nogroup 20808 2月 16 01:47 error.log -rw-r--r-- 1 root root 268 2月 16 01:37 lsrestart.log -rw-r--r-- 1 nobody nogroup 0 2月 16 01:32 stderr.log $ ll /usr/local/lsws/Example/logs/ 合計 16 drwxr-xr-x 2 root root 4096 2月 16 01:32 ./ drwxr-xr-x 6 root root 4096 2月 16 01:31 ../ -rw-r--r-- 1 nobody nogroup 4981 2月 16 02:01 access.log
一部、確認。
$ head -n 5 /usr/local/lsws/Example/logs/access.log 127.0.0.1 - - [16/Feb/2022:01:35:29 +0900] "GET / HTTP/1.1" 200 13733 "-" "curl/7.68.0" 192.168.33.1 - - [16/Feb/2022:01:37:42 +0900] "GET /css/custom.css HTTP/1.1" 200 2359 "http://192.168.33.10:8088/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36" 192.168.33.1 - - [16/Feb/2022:01:37:42 +0900] "GET /img/powered_by_ols-new.png HTTP/1.1" 200 1089 "http://192.168.33.10:8088/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36" 192.168.33.1 - - [16/Feb/2022:01:37:42 +0900] "GET /img/php-icon.png HTTP/1.1" 200 2075 "http://192.168.33.10:8088/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36" 192.168.33.1 - - [16/Feb/2022:01:37:42 +0900] "GET /img/404-icon.png HTTP/1.1" 200 3215 "http://192.168.33.10:8088/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36"
非常に簡単ですが、今回はこれくらいで満足したので、ここまでにします。