よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

lighttpdからmongrelへ

mongrellighttpdよりも設定が簡単だと巷で言われてますね。
そこで今回、mongrelを使ってみることに。

まずWEBサーバが変わることで、サブディレクトリの指定方法がかわる。
lighttpdの場合は、以下のような設定を書いていた。

ActionController::AbstractRequest.relative_url_root = "/app/redmine"

mongrelの場合は起動時にサブディレクトリをprefixで指定するようになる。

$ mongrel_rails start -d --prefix /app/redmine -e development -p 5000 -l /var/log/redmine.log -P /tmp/pids/redmine.pid -c /home/interu/projects/app/redmine

オプションが多くなるとさすがに面倒。。。
そんな場合はYAML形式のconfファイルに設定を書いておく。
設定内容は以下のとおり。

config_script:
 :pid_file: /tmp/pids/redmine.pid
 #:num_processors: 1024
 #:debug: false
 #:docroot: public
 #:user:
 #:host: 0.0.0.0
 #:mime_map:
 #:environment: production
 :environment: development
 :prefix: /app/redmine
 #:group:
 #:timeout: 0
 :port: "5000"
 :daemon: true
 #:config_file:
 #:cwd: /Users/donch/Development/Jimmy/BuildNet
 #:includes:
 #- mongrel
 #:log_file: log/mongrel.log
 :log_file: /var/log/redmine.log

  • 起動

$ mongrel_rails start -C config/mongrel.conf

  • 停止

$ mongrel_rails stop -P [pidのパス]

※confファイルを指定しても止めることができないのがネック

オプションで何を指定できるか調査したい場合は、

$ mongrel_rails mongrel::start -help

もしくは

$ mongrel_rails mongrel::stop -help

確かにlighttpdよりも設定は簡単。
どちらかというと設定よりも性能が気になるが、それは後々評価していこう。