HAproxyでbackendのサーバーがWarnings, Retr, Redisとなって接続できない事象が発生した。tcpdumpやらなにやら入れて2日がかりで調査したところ、HAproxyを動かしているホストがrstパケットを送る、もしくはSYN+ACKを受けた後無視していることが判明。
最終的に、HAproxyでstickを使っていたのが原因の模様。tcpをリバースプロキシする際はsitckを使わないほうがよさそう。rtmpなので接続先サーバーが変わってしまったとて別に問題なし。
↓ haproxy.cfg内でコメントアウトしたstick設定(sitckがダメなのか、どれかがダメなだけでstickがダメなのかは切り分けていない)
# stick store-request src
# stick-table type ip size 200k expire 20m
# stick on src
# source 0.0.0.0 usesrc clientip