Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Apache から LiteSpeed に乗り換えてみませんか? / php-conferen...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
TAKAHASHI Kunihiko
December 01, 2019
Technology
1.7k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Apache から LiteSpeed に乗り換えてみませんか? / php-conference-japan-2019-track5-hello-litespeed
2019/12/01 に行われた PHPカンファレンス2019の Track 5 で発表した「Apache から LiteSpeed に乗り換えてみませんか?」の登壇資料です。
TAKAHASHI Kunihiko
December 01, 2019
More Decks by TAKAHASHI Kunihiko
See All by TAKAHASHI Kunihiko
Webアプリケーションエンジニアだった私がホスティング事業に興味を持った理由 / Fukuoka UIJ Turn gmo pepabo
kunit
0
550
アプリケーションエンジニアな私がホスティング業界に来て感じたあれこれ / ChugokuDB Vol27
kunit
0
660
Google App Engine PHP 7.2 を試してみる #phpstudy / google app engine php 7.2
kunit
1
1.1k
独立したコアレイヤパターンをためしてみる / try independent core layer pattern
kunit
3
1.1k
CircleCI 2.0 を使い倒そう / phpcon kansai 2018 circlci docker
kunit
7
2.8k
PHPのバージョンアップについてあれこれ / luncers lunch study 3 php version up
kunit
0
2.3k
CircleCI の歩き方 / CircleCI #phpstudy
kunit
2
280
CircleCI 2.0 をつかってみよう / CircleCI #phpcondo2017
kunit
0
750
Docker for Mac/Winってどうなの? / #fukuokaphp docker for mac and win
kunit
0
280
Other Decks in Technology
See All in Technology
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
はじめてのDatadog
kairim0
0
280
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
190
Dynamic Workersについて
yusukebe
2
590
LLMと共に進化するプロセスを目指して
ymatsuwitter
11
3k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
50k
正解のないAIプロダクトをどう導くか?dodaが挑む、ユーザーの『本音』を構造化する評価設計と検証のリアル
techtekt
PRO
0
180
チームで実践する AI-DLC 思考の軌跡を残すチェックポイント設計
belongadmin
0
2.6k
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.5k
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
180
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
750
React、まだ楽しくて草
uhyo
7
4.1k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Claude Code のすすめ
schroneko
67
230k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Six Lessons from altMBA
skipperchong
29
4.3k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
What's in a price? How to price your products and services
michaelherold
247
13k
Navigating Weather and Climate Data
rabernat
0
210
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
820
Transcript
Apacheから LiteSpeedに 乗り換えて みませんか? (デモ内容補足版) 2019-12-01 PHP Conference Japan 2019
GMO Pepabo, Inc @kunit
自己紹介 ✔高橋邦彦 ✔@kunit ✔GMOペパボ株式会社 ✔ホスティング事業部所属 ✔2018年11月に東京から福岡 に移住
「みんなのPHP」でるぞー ✔ 技術評論社さんからでます ✔ 電子版は本日発売 ✔ 物理本は12/6発売 ✔ 執筆者、総勢18名!! ✔
私は1章担当しました ✔ みなさん、買ってね!
GMOペパボ株式会社 ✔ 一緒に働く仲間を募集中です! ✔ ご興味のある方はぜひお声がけください
GMOペパボ株式会社 ✔ロリポップ! ✔ムームードメイン ✔カラーミーショップ ✔SUZURI ✔minne ✔その他にも多数のサービスをして ます!
ロリポップ! 9月に新プラン追加 ✔ハイスピードプラン ✔LiteSpeed を採用しています
こんな方はいらっしゃいませんか? ✔ずっとApacheを使っていて、nginx + php-fpm に移行したいなと思ったが ✔長年熟成に熟成を重ねてきた数百行の秘 伝の mod_rewrite ルールが存在して いて
✔泣く泣くApacheを使い続けているとい う ✔あなたに特に本日の発表をおすすめしま す!
LiteSpeed とは ✔LiteSpeed Technologies が開発している Webサーバー ✔第4のWebサーバーと言われて いる ✔Apache ✔nginx
✔第3は?
LiteSpeed とは ✔有償版とオープンソース版がある ✔有償版はホスティング事業者が 嬉しい機能が満載 ✔オープンソース版は有償版に比べ て一部機能が使えない ✔ロリポップ!ハイスピードプラン では有償版を利用しています
LiteSpeed の特徴 ✔Apache 互換 ✔イベントドリブンアーキテクチャ ✔HTTP/2、QUIC、HTTP/3 ✔DoS/DDoS 対策 ✔WordPress に対するキャッ
シュ、攻撃対策
Apache 互換! ✔有償版はApacheの httpd.conf がそのままつかえる ✔有償版は .htaccess がそのままつ かえる ✔既存のApacheから5分で乗り換え
れると公式は言っている ✔オープンソース版は mod_rewrite ルールを解釈してくれる
LiteSpeed 上での PHP ✔ LiteSpeed SAPI というのが準備さ れている ✔ PHP
のコアにきちんとあるんです
Apache + mod_php ✔Apache 本体のプロセスにPHPインタプリタ がそのままロードされる ✔静的コンテンツとPHP処理プロセスは同じもの で処理される ✔静的コンテンツを大量にさばきたくても、プロ セスを増やすとPHP側も増えてしまい、DB接
続数やメモリ使用量等で問題になる ✔Apache は prefork で動作(C10K問題) ✔PHPのバージョンは全プロセス同じものとなる ✔php.ini は全プロセスで同じものとなる
nginx + php-fpm ✔nginx とは別に php-fpm を起動しておい て、リクエストを転送する ✔それぞれ別管理、別起動 ✔静的コンテンツは
nginx、PHPは php-fpm で処理できるので効率的 ✔イベントドリブン(C10K問題に強い) ✔バーチャルホストごとにPHPのバージョンを変 更可能 ✔バーチャルホストごとに php.ini 指定可能 ✔.htaccess は使えない
LiteSpeed ✔LiteSpeed WebサーバーにPHPを利用するア クセスが来た際に、PHPの処理プロセスを起動さ せることが可能 ✔もちろん、予め処理プロセスを起動しておくこと も可能だが、これもLiteSpeed Webサーバー が管理してくれる ✔イベントドリブン(C10K問題に強い)
✔一定時間処理がないPHP処理プロセスは自動的に 落としてくれる ✔LiteSpeed Webサーバー本体で静的コンテン ツを、PHPは別プロセスで処理するので効率的
LiteSpeed ✔有償版は httpd.conf/.htaccess 使用可 ✔オープンソース版は .htaccess から rewrite ルールの読み込みが可能 ✔バーチャルホストごとに細かい制御が可能(秒間
リクエスト数や帯域幅等) ✔バーチャルホストごとに php.ini 指定可能 ✔外部アプリケーションという考え方があ り、PHPの処理はこれを利用する ✔外部アプリケーションをサーバー全体もしくは バーチャルホストごとに設定可能
LiteSpeed 外部アプリケーション ✔外部アプリケーションごとにPHPのバージョ ン指定できる ✔外部アプリケーションごとに実行ユーザを変 更できる(suEXEC) ✔メモリ使用量、プロセス数を制御可能 ✔外部アプリケーションは拡張子に対して指定 する ✔つまり、同じバーチャルホストで
も、.php73 と .php72 でバージョンを変 えるというエグいこともできる
LiteSpeed ✔有償版には WordPress の wp- login.php や xmlrpc.php に対す る
Brute Force Attack Protection という機能がある ✔一定時間内に決まった回数アクセスが あるとそのIPを弾くとかが可能 ✔LiteSpeed Cache Plugin という WordPress Plugin をオフィシャ ルで提供している
LiteSpeed PHPのインストール ✔LiteSpeed 公式リポジトリからインス トール可能 ✔PHP 5.2 から 7.3 まで準備されている
✔2019/11/30 現在は 7.4 は準備され てなかった(残念) ✔yum install lsphp73 lsphp73- devel ... ✔apt-get install lsphp73 lsphp73- devel ...
説明だけだとあれなので ✔実際に動いているところを見て いただきましょう
ここから、補足ページです ✔ここ以降は当日行ったデモの内容のダイ ジェストを補足します ✔当日、デモ内容が文字が小さくて見れな かった方、本当にすみませんでした ✔アーカイブ動画もチェックしましたが、 見づらい部分もあったのでそれも含めて 補足します ✔当日時間がなくて、本来やりたかった内 容も追加しています
当日デモの環境 ✔Vagrant + VirtualBox で 作った CentOS7 環境 ✔Apache 2.4.6(CentOS)
✔nginx 1.17.6 ✔Apacheおよびnginx向け に、remi から php 7.3 をイ ンストール
当日デモの環境 ✔OpenLiteSpeed 1.6.4 ✔LiteSpeed の公式リポジトリ から 5.6/7.0/7.1/7.2/7.3 のPHPをインストール
OpenLiteSpeed の管理ツール ✔Webインターフェースの管理ツールが 付属する ✔通常は 7080 ポートでアクセスでき る(もちろん変更可能) ✔OpenLiteSpeed では英語のみでは
なく、日本語/中国語での表示が可能 ✔ちなみに、有償版の管理ツールは英語 のみ
OpenLiteSpeed の管理ツール ✔ ログイン画面
OpenLiteSpeed の管理ツール ✔ ダッシュボード(英語表示)
OpenLiteSpeed の管理ツール ✔ ダッシュボード(日本語表示)
OpenLiteSpeed の管理ツール ✔ バーチャルホスト一覧
OpenLiteSpeed の管理ツール ✔ バーチャルホスト詳細
OpenLiteSpeed の管理ツール ✔ 外部アプリケーション(バーチャルホスト単位)
OpenLiteSpeed の管理ツール ✔ 外部アプリケーションと拡張子の関連付け
OpenLiteSpeed の管理ツール ✔ 公開バーチャルホストの一覧(リスナー設定)
OpenLiteSpeed の管理ツール ✔ バーチャルホストとドメインとの関連付け(リスナー設定)
OpenLiteSpeed のPHP 7.3 ✔ OpenLiteSpeed + PHP7.3 でとった phpinfo ✔
Server API は 「LiteSpeed V 7.6」
OpenLiteSpeed のPHP 7.2 ✔ OpenLiteSpeed + PHP7.2 でとった phpinfo ✔
Server API は 「LiteSpeed V 7.6」
OpenLiteSpeed のPHP 7.1 ✔ OpenLiteSpeed + PHP7.1 でとった phpinfo ✔
Server API は 「LiteSpeed V 7.6」
OpenLiteSpeed のPHP 7.0 ✔ OpenLiteSpeed + PHP7.0 でとった phpinfo ✔
Server API は 「LiteSpeed V 7.6」
OpenLiteSpeed のPHP 5.6 ✔ OpenLiteSpeed + PHP5.6 でとった phpinfo ✔
Server API は 「LiteSpeed V 7.6」
OpenLiteSpeed のプロセス ✔ OpenLiteSpeed を起動した直後のプロセス状態 ✔ PHPにまだアクセスしてないので PHP のプロセスはいない
OpenLiteSpeed のプロセス ✔ PHP 7.3 の phpinfo にアクセスした状態 ✔ OpenLiteSpeed
の lscgid からPHPプロセス lsphp が 生成されている ✔ WebサーバーのプロセスとPHPのプロセスが親子関係になる のがなかなかおもしろい
OpenLiteSpeed のプロセス ✔ PHP 7.3/7.2/7.1 のバーチャルホストの phpinfo にアクセスした状態 ✔ OpenLiteSpeed
の lscgid からPHPプロセス lsphp が複数生成されてい る ✔ lscgid の直接の子供の lsphp が外部アプリケーションごとに生成されるもの で、それぞれの外部アプリケーション毎のプロセスは今は1つだけ子供のプロセ スをもっているが、アクセスが増えると子供のプロセスを増やしていく ✔ つまり実際のリクエストを処理しているのは一番子供の lsphp ✔ 各バーチャルホスト毎の外部アプリケーションが別々のアカウント (phpcon73/phpcon72/php71)で処理されていることもわかる
OpenLiteSpeed のプロセス ✔ OpenLiteSpeedの管理ツールをアクセスした後、 PHP 7.3/7.2/7.1 のバーチャルホストの phpinfo にアクセスした状態 ✔
OpenLiteSpeed の lscgid から各バーチャルホ スト毎の外部アプリケーション用の lsphp だけでは なくて、管理ツール用の admin_php も生成され ている
Apache httpd のPHP 7.3 ✔ Apache httpd + PHP7.3 でとった
phpinfo ✔ Server API は 「Apache 2.0 Handler」
Apache httpd のプロセス ✔ Apache httpd を起動し、PHP 7.3 の phpinfo
にアクセスした状態 ✔ httpd のプロセスが複数起動し、どのプロセ スでも静的コンテンツおよびPHPを処理する
nginx + php-fpm のPHP 7.3 ✔ nginx + php-fpm(7.3) でとった
phpinfo ✔ Server API は 「FPM/FastCGI」
nginx + php-fpm のプロセス ✔ nginx と php-fpm をそれぞれ起動し、PHP 7.3
の phpinfo にアクセスした状態 ✔ nginx のプロセスと php-fpm のプロセスは 完全に独立して存在し、静的コンテンツは nginx、PHPの処理は php-fpm 側に転送さ れて処理が行われる
当日行ったベンチマークの注意事項 ✔ ここまで説明したような Apache + mod_php、 nginx + php-fpm、OpenLiteSpeed のそれ
ぞれの 7.3 環境に対して、WordPress 5.3 をイ ンストールして、インストール直後のトップページ に対して、ベンチマークをとってみた ✔ ベンチマークで使ったのは、当日デモしていたノー トPCであり、3つのWebサーバーに対して特に チューニングは行っていないので、あくまでも参考 値 ✔ 環境がもっとリッチなもので、それぞれに対して、 もっとチューニングすれば差異がでてくるものだと 思ってください。
当日行ったベンチマークの注意事項 ✔ WordPress はこんなページ
当日行ったベンチマーク ✔ ベンチマークには ab を利用 ✔ ab -n 1000 -c
100 [URL] という形で実 施 ✔ https ではなく http アクセスでのテスト (httpsにしておいて h2load で HTTP/2 でのテストをするのも面白いかもしれないが 準備が間に合わなかった...) ✔ 当日会場で行った結果は、Apache + mod_php/nginx + php-fpm/OpenLiteSpeed ともに 45 reqs/sec 前後の値で速さは変わらなかった
当日行えなかった比較 ✔ 当日は ab -n 1500 -c 1000 [URL] というもの
を OpenLiteSpeed でのみ行った ✔ OpenLiteSpeed はチューニングなしの状態で 1000並列リクエストを reqs/sec を落とすことな く完了できる ✔ 同一環境で Apache+mod_php と nginx+php- fpm は素の状態だと途中で落ちる(ファイルのオープ ン数の上限に引っかかる等の理由で) ✔ もちろん、Apacheおよびnginx環境でもパラメー ターチューニングを行うことにより処理できるように なるが、LiteSpeedが高負荷状態にもともと強いも のとして設計されているということを説明したかった のでこの説明を当日入れた
ここまでが当日の補足 ✔ あらためて、当日プロジェクターで写したプ ロセスリスト等の結果が見づらかったことを お詫びします ✔ アーカイブ動画ではかろうじて見れるようで すので、この資料とともに見ていただけると 幸いです
LiteSpeed 使っていきましょう! ✔日本ではあまりにも知名度が低 いのがあれですが、もっと使わ れていてもおかしくないと思う ので、ぜひ試してみてくださ い!
? 質問あるかたどうぞ