質問

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

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

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

役に立ちましたか?

解決

2 つのプロセスを同じ IP アドレスの同じポートにバインドすることはできません。別の IP アドレスをボックスに追加し、各サーバーがその 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にはこれがあるでしょうか?

他のヒント

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top