まず、私の状況を説明します。私はかなり人気のあるWebサイトをサイドプロジェクトとして運営しているため、大量のお金を投資することはできません。現在、Apacheに通常のリクエストを送信し、Lighttpdにすべての静的ファイルリクエストを送信するHAProxyを備えたサーバーが1台しかありません。すべてのphpおよびpostリクエストはApacheによって処理されるため、これは非常にうまく機能しますが、すべての画像はより高速なLighttpdに送信されます(サイトはほとんど画像なので、これは非常に重要です)。短いURLも非常に重要であるため、画像を提供するためにサブドメインを設定する必要がないのは良いことです。したがって、HAProxyを使用する私の理由です。
私が使用している非常に安価な未測定の帯域幅を提供するホスティングプロバイダーを見つけました.100mbsのネットワークカードが処理できる帯域幅を押し出すと問題が発生します。したがって、2台目のサーバーが必要です。
私は私のオプションに多くの考えを入れましたので、それぞれについて説明します。どれが私にとって最良の選択肢であるかについての洞察を提供できれば幸いです。あるいは、まだ考えていない別の選択肢があるかもしれません。
要件:
帯域幅の分配も必須です。私は非常に強力なサーバーを持っているので、スケールアップはオプションではありません。帯域幅を増やすためにスケールアウトする必要があります。
短いURL。画像を提供するためにimg.example.comのようなサブドメインを設定することは本当にありません。example.com/image.jpgは現在の状態であり、どのようにそれを維持したいのかです。しかし、他に方法がなければ、私は理解しています。
要求を処理するclostestサーバーは本当に便利ですが、必須ではありません。心に留めておくべきこと。
負荷分散するHAProxy:
- とにかくHAProxyを既に使用しているので、それは本当に簡単です。ただし、帯域幅を分配するときに問題が発生すると思います。私はこれで間違っているかもしれませんが、HAProxyはリクエストをサーバーに送信し、そこでサーバーはそれを処理し、HAProxyを介してクライアントに送り返しますか?したがって、すべてのトラフィックはロードバランサーを経由して戻り、すべてのサーバーを合わせた帯域幅を使用します。
DNSラウンドロビン:
- これが私の最良の選択肢かもしれません。Webサイトを複数のサーバーに複製し、私が今していることを行うだけです。マイナス面は、1つのサーバーがダウンしても、クライアントがサーバーに送信されることです。また、複数のサーバーにサイトを複製する必要があります。私は、静的ファイルを除くすべてを処理する1つのメインサーバーがあり、その後にいくつかの静的ファイルサーバーがあることを望んでいました。また、これは一種の「貧乏人の負荷分散」であり、もう少し洗練されたものがあればいいと読みました。
ダイレクトサーバーリターン:
- それは本当に複雑に思えますが、良い選択肢かもしれません。特定のURLを特定のサーバーに送信することはできますか?現在HAProxyと同様に、正しいファイル拡張子で終わるすべてのURLはLighttpdに送信され、他の拡張子はApacheに送信されます。だから私は似たようなものが必要だろう。同様に、すべてのphp要求は、バランシングソフトウェアを実行している同じサーバーによって処理されますが、すべてのjpg要求は複数のサーバーに送信されます。
理想的には、HAProxyがDirect Server Returnをサポートしていれば、私の問題は解決するでしょう。また、CDNを使用したくありません。それらは本当に高価であり、結局のところ、これは単なる副プロジェクトです。
私の問題を理解していますか?正しく説明しなかった場合や、さらに情報が必要な場合はお知らせください。