Railsをthinで複数起動してApacheでロードバランス †
thin のインストール †
gem install thin
対象のrailsアプリの Gemfile に以下を追記 †
gem 'thin'
gemインストール †
bundle install --path vendor/bundle
起動 (ポート8001〜8005 まで使ってプロセスを5つ起動する) †
thin start -e development -p 8001 -s 5 -d
停止 †
thin stop -e development -p 8001 -s 5
Apacheでロードバランスの設定 †
.
.
LoadModule proxy_module path_to/mod_proxy.so
LoadModule proxy_http_module path_to/mod_proxy_http.so
LoadModule proxy_balancer_module path_to/mod_proxy_balancer.so
.
.
<VirtualHost *:80>
.
.
ProxyPreserveHost On
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# rails側で force_ssl にした railsアプリの場合、リダイレクトがループしてしまうのでこの設定も入れておく
RequestHeader set X_FORWARDED_PROTO 'https'
ProxyPass / balancer://rails/
ProxyPassReverse / balancer://rails/
<Proxy balancer://rails/>
BalancerMember http://localhost:8001 loadfactor=10
BalancerMember http://localhost:8002 loadfactor=10
BalancerMember http://localhost:8003 loadfactor=10
BalancerMember http://localhost:8004 loadfactor=10
BalancerMember http://localhost:8005 loadfactor=10
</Proxy>
</VirtualHost>