質問: 外部に対してポートが80しか開いていない環境を開発者複数で共有するため、パスベースのリバースプロキシをしようと思っています。開発環境なのでサーバーは WEBrick です。 `http://server/devel1` に接続すると localhost:3000 に、 `http://server/devel2` に接続すると localhost:3001 に、 飛ぶように設定したいのです。 Twitterで聞いたところ @matsuu さんに の設定でいけるのでは、と教えていただいたきました。 試したところ、確かに `http://server/devel1` にアクセスすると WEBrick で上げたRailsアプリには接続できますが、アプリケーションがちゃんと動いていません。 Nginxのエラーログを見ると、 ``` 2015/03/24 23:26:35 [error] 7627#0: *2 open() "/usr/share/nginx/html/rails/info/properties" failed (2: No such file or directory), client: 126.185.134.71, server: localhost, request: "GET /rails/info/properties HTTP/1.1", host: "119.81.181.117", referrer: "http://119.81.181.117/foo/" ``` のようなエラーが出ていて、Railsアプリ内のリクエストがROOTを向いてしまっているのが原因のようなのです。 アプリ側になにか設定が必要なのかなと思うのですが、この環境で動かすだけのためにあまり手を入れたくないというところがあります。 どのようにするのが適切でしょうか。
回答: railsのバージョンにもよりますが、 ActionController::AbstractRequest.relative_url_root = '/foo' もしくは ActionController::Base.relative_url_root = '/foo' のような設定を入れるとどうでしょうか。