nginx conf設定の問題
PHP中文网
PHP中文网 2017-05-16 17:29:03
0
2
714

1

http {}セクションには

が設定されています リーリー

要求されたヘッダーは

に設定されます リーリー

次に、サーバーの {} セクションで、

リーリー

3 番目のマップ命令が前の値を上書きするため、出力される結果は常に 30 になります。

問題は、マップ パーツのさまざまなヘッダーに基づいて目的の値を取得する方法です。

2

問題 1 を解決するには、私が考える方法は次のとおりです。 リーリー

次に、場所の {} セクションで

を使用します。 リーリー

必要な値を取得するには; 恥ずかしながら、この if は失敗したようです。nginx は if

の使用を推奨しません。

それでは、功績と名声について深い知識を持っているクラスメートの中で、この質問に答えるのに役立つ人は誰でしょうか?
PHP中文网
PHP中文网

认证0级讲师

全員に返信(2)
阿神

わかりました、if を使用しましたが、nginx は if の使用を推奨していません。誰かがより良い解決策を持っていますか?


@冰风 その人、あなたに返信するテキストはMD形式を使用できないようです、私はここであなたに返信します:

しかし、あなたの答えは私の質問に対する答えではありませんでした。

私のビジネスニーズは次のとおりです:

リーリー

つまり、リクエストには $http

header

1、$httpheader2、$httpheader3 のいずれか 1 つだけがあり、対応する値は a、b、c のいずれか 1 つです。 nginx はヘッダーのキーを決定し、キーに対応する値に基づいて確認された $route 値を返す必要があります。

ビジネス例:

curl -H "header_php:a" http://biz.domain.com/

  1. curl -H "header_python:b" http://biz.domain.com/ 最终$route为 111, 并 fastcgi_pass localhost:111
  2. curl -H "header_ruby:c" http://biz.domain.com/ 最终$route为 212, 并 fastcgi_pass localhost:212
  3. 最终$route为 313, 并 fastcgi_pass localhost:313それでは

php-1 モニター 111、php-2 モニター 112、php-3 モニター 113

    python-1 モニター 211、python-2 モニター 212、python-3 モニター 213
  1. ruby-1 は 311 をリッスン、ruby-2 は 312 をリッスン、ruby-3 は 313 をリッスンします
  2. 最終的に、合計 9 つのビジネス プロセスがあり、それぞれがポートをリッスンします。
なぜ私がそのような奇妙な要求をするのかは聞かないでください、それは私の隠れた功績と名声です~~~

つまり、あなたの答えは私の動物的欲求を満たすことはできません

いいねを押す +0
漂亮男人

ホストはいくつかのことを理解する必要があります。 1. マップ命令内のステートメントは、デフォルトで N 個のうち 1 個を実行する必要があります。

リーリー

と同等です リーリー

したがって、最後の送信 $route は 30;

map は、複数の入力値と出力値の間のマッピング関係を確立するための命令です。入力値がマップに渡される前に定義され、割り当てられていることが最善です。それ以外の場合は、デフォルトが直接実行されます。

オリジナルポスターを試してみることができます

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート