内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
rails:tips
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Rails開発、小ネタ ====== ===== request.domain ===== サーバ名は、''ENV["SERVER_NAME"]''や''ENV["HTTP_HOST"]''ではなく、''request.domain''で取得する。 リバースプロキシを使った構成の場合、railsは外部にどういったドメインでアプリケーションが公開されているか分からない。このため、リバースプロキシで''X_FORWARDED_HOST''ヘッダに公開されているドメインをセットし、railsに公開度メインを伝える。 ''request.domain''は、''X_FORWARDED_HOST''ヘッダがあればその値を返し、無ければ自分のホスト名を返すので、サーバ構成がどうあっても同一のコードで外部に公開されているドメインを取得できる。 ===== request.remote_ip ===== クライアントホストの取得には''request.remote_ip''を使う。リバースプロキシを使う場合は''X_FORWARDED_FOR''を設定する。 ===== mod_proxy + mod_ssl → mongrel ===== ApacheでSSL処理を行う場合 X_FORWARDED_PROTOヘッダをセットするとリダイレクトの''Location''ヘッダがhttpsで返るようになる。 <Proxy /hoge> RequestHeader set X_FORWARDED_PROTO 'https' </Proxy> ===== バランサを使う場合の設定まとめ ===== セッションストアは個々のサーバ上に保存しないもの(Cookie、ActiveRecord、MemCache、Drb)を使おう。 apacheのconfigは… <code> LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so # リバースプロキシを使います。 ProxyRequests Off # / へアクセスしたときに balancer://rails_cluster/ へ ProxyPass / balancer://rails_cluster/ nofailover=On timeout=2 # プロキシの設定 <Proxy balancer://rails_cluster/> RequestHeader set X_FORWARDED_HOST 'yourhost.example.com' # リバースプロキシの外向きのホスト名 RequestHeader set X_FORWARDED_FOR %{REMOTE_ADDR}e # クライアントのIPアドレスを通知 RequestHeader set X_FORWARDED_PROTO 'https' # リバースプロキシがSSL処理する場合に必要 BalancerMember http://192.168.1.2:3000/ BalancerMember http://192.168.1.3:3000/ BalancerMember http://192.168.1.4:3000/ </Proxy> </code>
rails/tips.txt
· 最終更新: 2011/10/27 15:43 by
nullpon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ