* Railsをthinで複数起動してApacheでロードバランス [#a9615c43]
#setlinebreak(on)
#contents
-- 関連
--- [[Apacheインストール]]
--- [[ApacheでSSL(SNI)設定]]
--- [[ApacheとRailsをmod_proxyで連携する]]
** thin のインストール [#z4a14bce]
#myterm2(){{
gem install thin
}}
** 対象のrailsアプリの Gemfile に以下を追記 [#l79c170b]
#myterm2(){{
gem 'thin'
}}
** gemインストール [#m0bd43ea]
#myterm2(){{
bundle install --path vendor/bundle
}}
** 起動 (ポート8001〜8005 まで使ってプロセスを5つ起動する) [#g8d6196c]
#myterm2(){{
thin start -e development -p 8001 -s 5 -d
}}
** 停止 [#j41049ae]
#myterm2(){{
thin stop -e development -p 8001 -s 5
}}
** Apacheでロードバランスの設定 [#rd989c0d]
#myhtml2(){{
.
.
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>
}}