2006-06-05 LiteSpeed [長年日記]

[Rails] 開発〜運用Webサーバの比較

名前速度開発設定備考
Apache+CGI×Webサーバのデファクト。RoRはCGIでは速度的に無理(遅)
Apache+FastCGI×FastCGIで速度的に運用可能だが、開発はできない
WEBrick代案がない場合の Rails 開発用鯖。ソースは綺麗なので勉強にはよいという噂
Lighttpd速度がウリ。開発から運用まで使える。起動オプションの不備が若干面倒
Mongrel速い上にWEBrick互換のオプションがある。Rails 濃い人は lighty から乗り換え中
LiteSpeed自称Apacheの後継。速度、機能、自前のCGI系APIがウリらしい

(注意: 印はくまくまー調べなので鵜呑みにしてはいけません)

[開発]

Apache上での開発はまず無理である。WEBrick は Ruby標準な上に最低限の機能・スペックは満たしているので未だに愛用者は多く、Rails初学者には十分である。WEBrickの速度に限界を感じたユーザは Lighttpd(愛称 lighty)を利用する。速度も十分でや設定も容易だが、起動時の引数でポートを指定できないなど若干使いづらい面もある。lighty ユーザは Mongrel に進むという予言もある。

[運用]

Webサーバのデファクトはやはり Apache で、Rails的には生CGIは無理だが、FastCGIなどのモジュールと併用することで速度的な問題はなくなる。RailsはLighttpdなどの開発向けのサーバで動かし、リバースプロキシを利用する手もある。完全に Rails のみで運用されるサイトであれば Lighttpd を80番という大胆な構成もあり。そして、今回試してみたいのが最近Rails界隈で利用者が増えてきている LiteSpeed。LiteSpeed + Mongrel が現在の Rails 野郎達の最新ファッションになっている。また、LiteSpeed が持つ自前のアプリ接続用プロトコル(LSAPI)は Ruby/Rails をサポートしているので、Railsアプリ用にバックエンドサーバを用意しない運用方法にも注目したい。

LiteSpeed

自称 Apache の後継だけあって、下記の特徴の通りかなり Apache ユーザを意識している。

  • 静的コンテンツの速度は Apache の 6〜9倍
  • PHP は Apache(+ mod_php) の 1.5倍以上の速度
  • Apache の設定ファイルを理解するので移行が容易
  • アプリ(CGI)接続用の独自のプロトコル(LSAPI) [PHP, Ruby/Rails]
  • CGI も FastCGI も JSP(AJP1.3) とか大概の外部アプリが動く
  • SSL、GZIP圧縮、静的ロードバンラサ、VirtualHostも使える
  • .htaccess に互換があるのは凄い

http://litespeedtech.com/

インストール

ports も gem も dev もない。公式サイトから各OS用の tar ファイルを落としてバイナリインストールとなる。Standard版(無料)とEnterprise版(30日試用→有料)があるので、そもそもソースは公開されてない。(インストール時に管理用Webページで使うアカウントが必要になるが、"root" も "nobody/www-data" も嫌なので専用の "lsws" を先に作っておく。思ったけど実アカウントは要らなかったので作らなくてよかった)

./install.sh

Do you agree with above license? Yes
Destination [/opt/lsws]: /usr/local/lsws
User name [admin]: lsws
Password: ******
Retype password: ******
User [nobody]: www-data
Group []: www-data
HTTP port [8088]: 
Admin HTTP port [7080]: 
Setup up PHP [Y/n]: 
Suffix for PHP script(comma separated list) [php]: 
Would you like to change PHP opcode cache setting [y/N]? 
Would you like to install AWStats Add-on module [y/N]? 
Would you like to import Apache configuration [y/N]? y
Path to your Apache configuration file [Enter to skip]: /etc/apache2/apache2.conf
Would you like to have LiteSpeed Web Server started automatically when the machine restarts [Y/n]? 
Would you like to start it right now [Y/n]? 
[OK] lshttpd: pid=30877.
LiteSpeed Web Server started successfully! Have fun!

設定

設定ファイルは "conf/*.xml" に XML文章で保存されている。直接編集してもいいが、管理ツールがあるのでインストール時に指定したポートおよび管理者アカウント情報で接続する。samba と swat の関係に似ている気がした。

URL: http://localhost:7080/
user: lsws      # インストール時に指定したもの
pass: ******    # インストール時に指定したもの

このGUI(ブラウザ)によって、設定変更からサーバの管理(起動、停止、再起動)までできるのが、swat ぽくて使いやすい。個人レベルであれば、Apache のように生の config を必死に手で書く時代は終わったのかもしれない。

[CGI]

デフォルトでは、CGIが実行されない(ソース丸見え)ので登録する。管理画面の「Script Handler」に追加してみる。

addingcgi.png

サーバを再起動。(※ 最初は "conf/*" を手で編集した影響でパーミッションの問題で反映されてなかった。おかしいと思ったら "admin/logs/error.log" を見ること)。

[FastCGI]

FastCGI も使っているので管理画面の「Script Handler」で fcgi も早速登録。

addingfcgi.png

先生事件です。「Handler Name」の選択肢がありません。そのまま「Save」するとやはり「Handler Name」がなくて登録エラー。ひとつ横の「External Apps」で登録しておけばいいのかな?

[External Apps] FastCGI 用のアプリケーション登録

「External Apps」のところで fastcgi 用の app を早速登録。

addingfastcgiapp.png

と一杯出てきて面食らう。

  • FastCGI および LSAPI の設定を調査 (←いまここ)
  • tdiary が動くように設定
  • php のライブラリ設定

現在の悩み

[CGI]

Apacheと違ってファイルが置いてあるディレクトリに chdir せずに実行されてるっぽい。tdiary とか設定ファイルがカレントにあることを期待しているCGIが動かない。さすがに設定がありそうな気がするけど>LiteSpeed。

(追記: chdir はされている模様 (20060606))

[mod_dav_svn]

多分サポートしてない。リバースプロキシする?フォーラムを見る限り、svn リクエストは通るように対応したっぽい。結局裏で Apache を動かす必要がありそう。

http://www.litespeedtech.com/community/forum/archive/index.php/t-269.html


サイト内検索 (by Google)

| JRuby | Rails | Berryz | ℃-ute | エッグ | jQuery |

過去

2006年
6月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

未来

コンタクト