1

現在要求されている URI に基づいて proxy_pass の宛先を決定するために (DNS ではなく) サービスにクエリを実行するように nginx を構成することは可能ですか?

例えば:

  1. クライアントは、プロキシする必要があるhttp://somesite.tld/somepageを要求します。
  2. nginx は解決サービスに接続し、プロキシの宛先を決定するために使用されるリクエスト URI を送信します。
  3. 解決サービスが応答し、宛先のホスト名が提供されます。
  4. クライアントのリクエストは、指定された宛先にリダイレクトされます。

これがサポートされていない場合、これを行うための良い方法は何ですか? 私はリゾルバー+プロキシにproxy_passすることができましたが、nginxが宛先へのプロキシを直接処理できるようにしたいと考えています。各 URI の宛先は変更される可能性があるため、リゾルバーを照会する必要があることに注意してください。

ありがとう :-)

4

3 に答える 3

1

あなたが求めていることを達成する方法がわかりません。

ただし、リクエスト引数をホスト名にマップするだけの場合 (そしてホスト名はあまり変更されない場合) は、おそらく Nginx のmap モジュールを使用できます。

mod_luaを使用して何かを行うこともできるかもしれませんが、それはひどくハックである可能性があります。

于 2012-06-24T06:00:16.607 に答える
0

これは、ボックスから完全にサポートされています。*proxy_pass* ディレクティブでドメイン名を使用します。例えば:

proxy_pass http://yourproxy:port;

その後、DNS を構成し、必要に応じてプロキシアドレスを変更できます。

于 2012-06-21T04:36:33.667 に答える
0

@Pavel説明されているようにnginxを構成する機会がありましたか? 同様のタスクがあります。リクエストをプロキシする前に、どのサーバーがそれを処理できるかを定義する必要があります。これまでのところ、これを行う方法について 2 つのアプローチしか見ていません。nginx 用のカスタム モジュールを実装するか (「負荷分散」がどのように行われるかのソースを参照)、アプリケーション サーバーを使用して転送を実行するアプリケーションをまとめるかのいずれかです。要求の。

後者のアプローチはより単純に思えますが、パフォーマンスについてはよくわかりません。

ありがとう。

于 2013-01-15T15:41:05.660 に答える