web-dev-qa-db-ja.com

url_paramに基づいてトラフィックをルーティングするようにHAProxyを設定する

私はHAProxyを初めて使用します。私はそれを行う方法を理解しようと数時間を費やしましたが、リードを得ることができませんでした。私の要件はこれです:

リクエストのエンドポイントが/ specialの場合、URL_PARAMを確認する必要があります。

例:localhost/special?id = 10 IDに基づいて、3つのサーバーのいずれかにルーティングする必要があります。 id <= 3 server1の場合、id> 3およびid <= 6 server2の場合、それ以外の場合はserver3。

エンドポイントが3つのサーバーすべての間の/ specialラウンドロビンでない場合。

この2レベルのバランスをとるにはどうすればよいですか?

1
Shekhar Sharma

_acl location_special path /special_を使用してURLを照合し、acl srv_1 urlp_val(id) -m int eq 0:3を使用して_id=_パラメーターを照合できます。そして最後に

_use-server server1 if location_special srv_1
_

リクエストを特定のサーバーにマップする

2
Fedor Dikarev