HAProxyを使用した負荷分散のためのURLパラメーターの使用


9

Cookieを介して負荷分散を行うシステムがありますが、代わりにURLパラメータを使用したいと考えています。(具体的には、Cookieをサポートしていないフロントエンドアプリがあります)。私の設定は少し複雑です-マルチプレイヤーシステムがあり、このCookieでスティックテーブルを使用して、同じゲームをプレイしている別の人が同じサーバーにアクセスできるようにします。これはうまくいきますが、URLパラメータは何もしないようです。これはすべてhaproxy 1.5dev17で

私の関連するバックエンドは:

defaults
   log            global
   mode           http
   option         httplog
   option         dontlognull
   retries        3
   option         redispatch
   option         http-server-close

   maxconn        2000
   contimeout     5000
   clitimeout     50000
   srvtimeout     50000

backend simulate
    option httpchk OPTIONS /simulate/api/status
    stick-table type string len 40 size 5M expire 30m
    stick store-response set-cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on url_param(SIMULATE_STICKY_SESSION) table simulate

    server app1 10.0.2.11:8080  cookie app1 check inter 10000
    server app2 10.0.3.11:8080  cookie app2 check inter 10000

SIMULATE_STICKY_SESSIONは私のアプリによって(プレーヤーチームに基づいて)生成されることに注意してください。

URLを呼び出すときに、jsessionidを渡す必要があります(Tomcatが正しいセッションを見つけるため)。だから私はやっている

http://my.domain.com/myapp/url;SIMULATE_STICKY_SESSION=1918C909D3F30DB09C2F96B75C57D015.app1+jsessionid;jsessionid=1918C909D3F30DB09C2F96B75C57D015.app1

間違ったサーバーに行く時間の50%として、これはスティッキーセッションパラメータを取得していないようです。(?マークの後の)クエリ文字列としてparamを使用してみましたが、それも機能しませんでした。何が悪いのですか?

回答:


3

haproxyメーリングリストで回答が提供されました

抜粋

設定で以下の行を更新してください:

 stick on url_param(SIMULATE_STICKY_SESSION,;) table simulate

デフォルトでは、url_paramは疑問符(?)の後のパラメーターを検索します。上記の設定は、セミコロン(;)からCookieを探すことでこれを上書きします。

注:最近の1.5dev haproxy、できればdev 18を実行している必要があります。


ユーザーリストに記載されているように、答えは次のように行を変更することです。stickon url_param(SIMULATE_STICKY_SESSION ,;)テーブルシミュレーション
Will Glass
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.