接続に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
ありがとうございました。詳細を提供できます(必要な場合)。
ゲームサーバーの動作にもよりますが、おそらくtimeout client
とtimeout 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