web-dev-qa-db-ja.com

ゲームサーバー用のHaProxy、構成の何が問題になっていますか?

接続にTCP)を使用するゲームクライアントでWebサイトをホストしています。現在、1つのサーバーからOriginサーバーに接続をプロキシする方法を探しています。Iptables転送をテストしました。私が直面している問題は、HaProxyがユーザーの接続をランダムに開いた後、ランダムにユーザーを切断することです。多くの場合、2分未満です。私はLinuxを初めて使用しますが、もちろん私はhaProxyの初心者です。

ここで私の構成では、明らかな理由でオリジンIPアドレスが削除されています。

global
daemon
maxconn 1000

defaults
    mode tcp
    timeout connect 5000ms
    timeout client 5000ms
    timeout server 5000ms

frontend proxy-in
    mode tcp
    bind *:1233
    default_backend proxy-out

backend proxy-out
    mode tcp
    server s1 127.0.0.1:1232

listen admin
    bind *:7772
    stats enable

ありがとうございました。詳細を提供できます(必要な場合)。

4
Matthew

ゲームサーバーの動作にもよりますが、おそらくtimeout clienttimeout serverを操作する必要があります。これらは現在、構成で5秒に設定されています。

これらの設定は、tcpセッションに関連しています。サーバーとのバランスを少し良くしたい場合は、永続性プロファイルを調べて、同じサーバーへの特定の接続のバランスをとることもできます。繰り返しますが、実際には構成によって異なります。

balanceオプションも参照して、ドキュメントを確認してください。

Haproxyドキュメントのアルゴリズムの例:( http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#balance

leastconn   The server with the lowest number of connections receives the
            connection. Round-robin is performed within groups of servers
            of the same load to ensure that all servers will be used. Use
            of this algorithm is recommended where very long sessions are
            expected, such as LDAP, SQL, TSE, etc... but is not very well
            suited for protocols using short sessions such as HTTP. This
            algorithm is dynamic, which means that server weights may be
            adjusted on the fly for slow starts for instance.

Tcpキープアライブのセットアップも必要になる場合があります:( http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#option%20tcpka

また、githubにあるhaproxyctlという優れたツールを使用してセッションをアクティブに表示したり、gem install haproxyctlを使用してインストールしたりすることもできます。

> haproxyctl show sess

0x1eb23c0: proto=tcpv4 src=172.12.0.149:57749 fe=https be=<NONE> srv=<none> ts=08 age=1m36s calls=40 rq[f=400000h,i=0,an=1ch,rx=1m23s,wx=,ax=] rp[f=008000h,i=0,an=00h,rx=,wx=,ax=] s0=[7,8h,fd=2,ex=] s1=[0,0h,fd=-1,ex=] exp=1m23s
0x1e3b170: proto=tcpv4 src=172.12.0.149:57750 fe=https be=<NONE> srv=<none> ts=08 age=1m36s calls=31 rq[f=400000h,i=0,an=1ch,rx=1m23s,wx=,ax=] rp[f=008000h,i=0,an=00h,rx=,wx=,ax=] s0=[7,8h,fd=3,ex=] s1=[0,0h,fd=-1,ex=] exp=1m23s
0x1e35da0: proto=tcpv4 src=172.12.0.149:57751 fe=https be=<NONE> srv=<none> ts=08 age=1m36s calls=35 rq[f=400000h,i=0,an=1ch,rx=1m23s,wx=,ax=] rp[f=008000h,i=0,an=00h,rx=,wx=,ax=] s0=[7,8h,fd=8,ex=] s1=[0,0h,fd=-1,ex=] exp=1m23s
0x1e4fa50: proto=tcpv4 src=172.12.0.149:57754 fe=https be=<NONE> srv=<none> ts=08 age=1m36s calls=15 rq[f=400000h,i=0,an=1ch,rx=1m23s,wx=,ax=] rp[f=008000h,i=0,an=00h,rx=,wx=,ax=] s0=[7,8h,fd=9,ex=] s1=[0,0h,fd=-1,ex=] exp=1m23s
1
nhuanca