passenger+sinatraで同一ドメイン内に複数のsinatraアプリを動かす方法
AWSのトーキョーregionに作ったEC2のインスタンス(Amazon Linux AMI)上に、passengerとsinatraをインストールし、passengerで同一ドメイン内のサブディレクトリとして複数のアプリを動かしたかったので調べました。(東京regionとか実は関係ない)
やりかた
httpd.confの設定
DocumentRoot "/var/www/html" RackBaseURI /app01 RackBaseURI /app02 <Directory /var/www/html> Options FollowSymLinks </Directory>
DocumentRootにsymlinkを作る
/var/www/html ├ app01 -> {$HOME_DIR}/htdocs/app01/public └ app02 -> {$HOME_DIR}/htdocs/app02/public
アプリケーション本体
自分のホームディレクトリにこんな感じでアプリケーションを作る
{$HOME_DIR}/htdocs/ ├ app01 │ ├ config.ru │ ├ app.rb │ ├ public/ │ └ tmp/ └ app02 ├ config.ru ├ app.rb ├ public/ └ tmp/
It works !