私は現在、新しいプロジェクトで複数のsock5プロキシサーバーの負荷を分散するための最良の方法を見つけようとしています。 HAプロキシのようなプログラムを調べていましたが、HTTPプロキシの負荷分散のみが行われているようで、このプロジェクトにはSock5が必要です。 DNSラウンドロビンを調べましたが、他のサーバーの1つに即座にフェイルオーバーしたり、ローテーションからそれらを削除したりする方法が見つかりませんでした。また、TTLは、オフラインになったときに別のサーバーにシームレスに切り替えるのに十分な速度で更新されないこともわかりました。これはしばらくの間本当に厄介で、説明するのが非常に難しいと思います。私の場合、プロジェクトが最近勢いを増しているため、負荷分散とユーザーの失敗の防止の経験がほとんどありません。投稿した内容が意味をなさないようであれば、構成しようとしているものについて以下の図を作成しました。
したがって、基本的に私が探しているのは、オフラインになるサーバーを削除しながら、sock5プロキシを効果的に負荷分散するソリューションです。 http://puu.sh/3mLvL/6ef73d46d4.png
これを行うにはいくつかの方法があります。多くのプロバイダーでは、F5などの負荷分散デバイスをレンタルまたは購入できます。これらのデバイスは、一連のマシンへのtcp接続と多くのレベル7接続の負荷を分散できます。ハードウェアで負荷分散ツールを取得できない場合は、nginx、haproxy、Apacheなどの他の選択肢があります。これらにはすべて負荷分散ツールがあります。
超高速である必要があるプロジェクトがある場合は、ハードウェアを使用することをお勧めします。誤解しないでください。私はnginxプロキシをたくさん使用しています。レベル7のプロキシへのtcpプロキシがある場合があります。ハードウェアロードバランサーはそれほど多くの電力を使用する必要がなく、残りのトラフィックを処理するためにより多くのnginxロードを使用できるため、これは必要な場合に役立ちます。多くのSSLターミネーション、ハードウェアロードバランサーに多くのSSLを実行させるには多くのコストがかかりますが、Apache、haproxy、nginxはかなり安価にそれを実行できます。
Nginx: http://wiki.nginx.org/HttpProxyModulehttps://github.com/yaoweibin/nginx_tcp_proxy_module
Apache: https://httpd.Apache.org/docs/2.2/mod/mod_proxy_balancer.html
HaProxy: http://tenfourty.com/2011/04/09/how-to-load-balance-tcp-connections-with-haproxy/