ディレクトリの先はWordPress〜rack-reverse-proxy

http://www.hoge.com/でRailsアプリを運用しているとして、http://www.hoge.com/blogはWordPressのブログを表示したい、なんてことありますよね。普通はReverseProxyを使うと思うのですが、サーバサイドに設定をあまり持たせたくなかったり、そもそもHerokuで運用しているのでそういう設定をすること自体無理というケースがあります。そういうときはrack-reverse-proxyが使えそうです。

使い方

まずGemfileにGemを追加します。

gem "rack-reverse-proxy", require: "rack/reverse_proxy"

そしてapplication.rbに設定を足すだけ。

config.middleware.use Rack::ReverseProxy do
  reverse_proxy /^\/blog\/?(.*)\/?$/, 'http://0.0.0.0/$1'
end

http://0.0.0.0/という部分はあくまで例なので、この部分には実際にブログにアクセスできるURLを設定してください。$1の部分に/blog/以降のパスが入ることになります。

Railsアプリまでアクセスが到達する分、ブログ表示のパフォーマンスは落ちますが、それ以上にSEOを気にする、という場合にはこういう手も使えそうです。また、WordPress以外にもS3でホストしているWebページを表示するなど、いろいろな使い方ができそうです。

rack-reverse-proxy