3

ApacheとCherryPyなどの2つの異なるWebサーバーを同じマシン上で並べて実行することに成功した人はいますか?現在、他のWebサーバーで実験を行っていますが、他のサイトを稼働させたまま実験を実行できるかどうかを確認したいと思います。これは、一般的なネットワークの質問であるため、特定のソフトウェアの質問ではないと言えます。

  • 異なるポートで2つのWebサーバーを実行できることは知っています。しかし、同じポートで実行できるように(つまり、両方ともポート80で実行できるように)構成する方法はありますか?
  • Webサーバーは、同じドメインからのファイルを提供しません。たとえば、Apacheはfoo.domain.comからドキュメントを提供し、他のWebサーバーはbar.domain.comから提供する場合があります。

これが理想的な構成ではないことを私は知っています。うさぎの穴を全力疾走する前に、それができるかどうかを確認したいと思います。:)

4

3 に答える 3

7

同じIPアドレスの同じポートに2つのプロセスをバインドすることはできません。ボックスに別のIPアドレスを追加して、各サーバーに1つのIPアドレスをリッスンさせることができます。

もう1つのオプションは、一方のサーバーをもう一方のサーバーにプロキシパスすることです。Apacheを使用すると、次のようなことができます。

NameVirtualHost *
<virtualhost *>
  ServerName other.site.com

  # assumes CherryPy listens on port 8080
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/
</Virtualhost>

これは非常に簡単な例ですが、ProxyPassのドキュメントをいつでも確認できます。ただし、プロキシされるアプリケーションは、リクエスターのIPアドレスではなく、ログに127.0.0.1を取得することに注意してください。一部のWebサーバー(apacheはmod_rpafで実行)は、間違ったIPアドレスの代わりにX-Forwarded-Forヘッダーを置き換えることができます。おそらくCherryPyはこれを持っていますか?

于 2008-08-22T23:24:25.377 に答える
0

最善の策は、Apache httpdをポート80の前に置き、モジュールを使用してApacheを介して他のサーバー宛ての要求を中継することです。最も一般的なシナリオは、Apacheの背後にあるTomcatで、phpとjspの両方のアプリケーションを実行できます。

私はCherryPyに精通していないので、CherryPy用のApacheモジュールを探すことをお勧めします。

編集:これは有望に見えます:http://tools.cherrypy.org/wiki/BehindApache

于 2008-08-22T23:09:55.350 に答える
0

または、Ishmaeelの正解として、2つのネットワークカードを備えたサーバーがある場合は、各サーバーに異なるIPアドレスで要求に応答させることができます。

于 2008-08-22T23:12:27.513 に答える