ここで少し複雑になります。私はここ数か月でより大きな Web ベースのプロジェクトを完成させようとしています。予算を低く抑えようとしている (そして自分でいくつかのことを学ぼうとしている) ため、これまで触れたことのない問題には触れていません: NGINX による負荷分散、将来に向けたスケーラビリティ。
セットアップは次のとおりです。 1 つの Web サーバー 1 つのデータベース サーバー 1 つのファイル サーバー (バックアップの保存にも使用)
fastCGI で PHP 5.4< を使用する
現在、これらのサーバーはすべて「スケーラブル」である必要があります。つまり、空きディスク容量が少なくなった場合に新しいファイル サーバーを追加したり、予想よりも多くの要求を処理する必要がある場合に新しい Web サーバーを追加したりできるという意味です。
もう1つのことは、1つのドメインですべてを実行したいので、異なるバックエンドサーバーへのアクセスがフロントエンドで実際に認識されないようにすることです(一部のバックエンドサーバーは基本的にサブドメインを介して呼び出されます-たとえば、「http:// file.myserver.com/...' ファイル サーバー間でのみ負荷分散が行われます)
- 負荷分散のために追加の別のサーバーが必要ですか? または、Web サーバーの 1 つだけを使用できますか? もし、そうなら:
- このような負荷分散サーバーに必要な電力 (CPU / RAM) はどれくらいですか? それはウェブサーバーと同じでなければなりませんか、それとも「より軽い」サーバーで十分ですか?
- 「負荷分散」サーバーもスケーラブルである必要がありますか? リクエストが多すぎる場合、複数必要になりますか?
- とにかく、全体の負荷分散はどのように正確に機能しますか? 私が意味したのは:
- 負荷分散されたシステムでのセッション処理や同期などの問題があることを示す多くのエントリを見てきました。私のニーズに合うかもしれない2つのソリューションを見つけることができました.ユーザーは常に同じマシンに向けられているか、データはデータベース内に保存されています. しかし、2 番目の場合、基本的に、PHP が既に持っている $_SESSION 機能の一部を再構築する必要がありますよね? (どのユーザーがどのセッションを取得したかを知るにはどうすればよいですか? Cookie で十分ですか?)
- 同期されていないセッションを除いて、どのような問題が予想されますか?
- スケーラブルなコードを書く - これは私がよく読む文章です。しかし、たとえば PHP に関して言えば、それは実際には何を意味するのでしょうか? 通常、1 人のユーザーの計算全体は 1 つのサーバー (NGINX がユーザーをリダイレクトしたサーバー) でのみ行われます。実際には NGINX によってリダイレクトされないため、PHP 自体はどのようにスケーラブルになるのでしょうか?
- 異なる「負荷分散」プールは可能ですか? つまり、すべてのファイルサーバーが「プール」にあり、すべての Web サーバーが「プール」にあり、基本的に、処理が多すぎるファイルサーバーでイメージを要求すると、ビジーでないファイルサーバーにリダイレクトされます。
- SSL - バランス ロード サーバー用に必要な証明書は 1 つだけですよね? データは常に負荷分散サーバーを経由して戻るため、またはそれはどのように機能するのでしょうか?
私はそれが巨大な質問であることを知っています - 基本的に、私は本当にいくつかのアドバイスを探しているだけです. 上記の質問に部分的に答えるスニペットを読むことはできますが、実際にそれを「実行する」ことは完全に別のことです。ですから、明確で決定的な答えはないことはすでにわかっていますが、おそらくいくつかの経験があります.
最終的な目標は、将来的に簡単に拡張できるようにすることであり、それを事前に計画する (さらにはロード バランサー サーバーのようなものを購入する) 予定です。