0

(queryparam servername) のテキスト マップを使用して、クエリ パラメータに基づいて別のバックエンド サーバーにリクエストを送信するように URL を書き換える必要があります。

prg: タイプと perl スクリプトを使用して、RewriteMap、RewriteRule を試しました。しかし、クエリ文字列はルックアップ スクリプトには表示されません。

例:マップファイル

    QS1 サーバー1
    QS2 サーバー 1
    QS3 サーバー3
    QS4 サーバー4
    など.. (約 10K エントリ -= 約 20 のバックエンド サーバーへのマッピング)

入力 URL が http://myrouter.com:8080/a/b/c?query=QS2の場合

次に、書き換えて http://Server1:9988/a/b/c?query=QS2に送信する必要があり ます (クエリ文字列ではい)

http://myrouter.com:8080/a/b/c?query=QS4がhttp://Server4:9988/a/b/c?query=QS4に送信されました

私の現在の試験は役に立たないようです。

    RewriteEngine on
    RewriteMap distributeRequests "prg:/export/requestdistributor.pl"
    RewriteRule ^(.*)$ ${distributeRequests:$1?%{QUERY_STRING}} [P]

URL のパラメータに基づいてプロキシを 検索しましたが、検索エントリの限定されたセットには適しています。私が探している 10 個のバックエンド サーバーにマッピングされる 10K のクエリ パラメータではありません。

ありがとう。

4

1 に答える 1

0

次のリンクは、クエリ文字列をスクリプトに渡す方法に役立ちました。

https://daryl.blog/2008/11/17/using-rewritemap-for-query-string-voodoo/

解決しました。ありがとう。

于 2019-09-27T12:52:26.480 に答える