1

そのため、私は pow.cx を使用して、静的なローカルホストのニーズのほとんどを強化しています。ラックレガシーを介して php を提供することもできました。

しかし、私は今、Tomcat をプロジェクトに使用する必要がある立場にいますが、可能な限り Pow を引き続き使用したいと考えています。理由は複数ありますが、基本的にはjavaが必要な部分以外はラック経由で提供したいと思っています。

ポート 8081 でローカルに実行されている tomcat サーバーにリクエストをプロキシするように pow に指示する方法があるかどうか疑問に思っていました。おそらく config.ru にこれを行うように指示することができると思いましたが、その方法はよくわかりません (私は Ruby の専門家ではないので)。

誰かがここで助けることができれば、それは素晴らしいことです. SOで同様のトピックをいくつか見つけましたが、ここでやろうとしていることと完全に一致するものはありません。

乾杯

4

1 に答える 1

2

ここで回答が得られなかった後、他の場所で見つかった解決策をさらに掘り下げて組み合わせました。以下は、pow を構成してラックレガシーを使用して php ファイルを処理することで既に知っていたことと、インターネット上の他の場所からの知識の組み合わせです。 :

解決策は、もう 1 つの gem にあります。rack-reverse-proxy です。

gem をまだインストールしていない場合は、単純に実行します。

gem install rack-reverse-proxy

コマンドラインから

これをインストールしたら、php プロジェクトの既存の config.ru ファイルを変更してここに収まるように変更し、Tomcat へのすべてのリクエストを転送するのは比較的簡単なことです。

ローカルの tomcat サーバーがポート 8001 で実行されていると仮定します。

require 'rack'
require 'rack/reverse_proxy'
require 'rack-rewrite'

INDEXES = ['index.html','index.php', 'index.cgi']

ENV['SERVER_PROTOCOL'] = "HTTP/1.1"

use Rack::ReverseProxy do
   # Set :preserve_host to true globally (default is true already)
   reverse_proxy_options :preserve_host => true

   # Forward the path /* to tomcat. 
   # You can limit this to requests to certain paths by providing a more specific 
   # path as the first argument
   reverse_proxy '/', 'http://localhost:8081'
end

use Rack::ReverseProxy
run Rack::File.new Dir.getwd

結局のところ、それは本当に簡単でした。

この知識が、将来、私の奇妙な状況で他の誰かを助けることを願っています!

于 2013-12-09T23:27:11.120 に答える