* 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>
}}

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS