基本的には https://github.com/jaswope/rack-reverse-proxy に書いてある通りで新しいこともバッドノウハウも無くて恐縮なのですが、半年ごとにメンテしてるサイトが reverser proxy を通ったときの挙動をデバッグすることになってその度に rack-reverse-proxy を再発見してまた忘れるを繰り返しているので、自分が忘れないようにここに書いておきます。
たとえば、本番のアプリのドメインは fuga.com
で、個別のドメインを無理やり reverse proxy で
http://hoge.com/ -> http://fuga.com/hoge/
みたいにしてる場合、開発環境でアプリを localhost:8080
で起動したら、
http://localhost:9292/ -> http://localhost:8080/hoge/
のようにすると挙動を確認できると思います。そのときは、
config.ru
require "rack/reverse_proxy"
use Rack::ReverseProxy do
reverse_proxy /^\/(.*)$/, 'http://localhost:8080/hoge/$1'
end
app = proc do |env|
[ 200, {'Content-Type' => 'text/plain'}, "b" ]
end
run app
それから rackup
で即席リバースプロキシサーバーを起動!
P.S. ほんとはテストでこういうの記述しとけばいいんですよね。
P.S.2. これ書いてる途中で 8ヶ月前に似たような投稿 してるのに気がついた...