2

TorqueBox で複数の Rails アプリケーションを実行しています。localhost:8080/app1各アプリケーションは、localhost:8080/app2(TorqueBox を介して構成された)など、異なる Web コンテキストにマウントされます。Apache は、仮想ホストapp1.domain.comとの間の要求を受け入れるように構成されています。app2.domain.comただし、一部のアプリケーション パス (フォーム送信パスなど) の前に/app1、たとえば、http://app1.domain.com/app1/rest/of/path正しい ではなく が必要になるという問題が発生していますhttp://app1.domain.com/rest/of/path

へのリクエストhttp://app1.domain.com/app1/...が正しいパス (つまり、先頭の/app1. リダイレクトでこれを試してみましたが、GET 要求が強制され、その過程で POST データが失われるため、うまくいきません。

これは私の現在のApache構成です:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
ProxyRequests Off
ProxyPreserveHost On
NameVirtualHost *:80

<VirtualHost *:80>  # There are multiple vhosts like this one, for different apps.
    ServerName app1.domain.com
    ProxyPass / http://127.0.0.1:8080/app1/
    ProxyPassReverse / http://127.0.0.1:8080/app1/
</VirtualHost>
4

1 に答える 1

2

TorqueBox 構成で Web コンテキストの代わりに Web ホストを使用することで、この問題を解決しました。その後、さまざまなアプリが特定のコンテキスト パスの下にないため、Apache 構成を機能させることは問題ありませんでした。

したがって、これの代わりに (でconfig/torquebox.rb):

TorqueBox.configure do
  web do
    context '/app1' 
  end
end

これを行う必要があります:

TorqueBox.configure do
  web do
    host 'app1.domain.tld'
  end
end
于 2014-01-06T04:27:59.757 に答える