web-dev-qa-db-ja.com

1つのApacheサーバーにドメインはいくつありますか?

単一のApacheサーバーでクライアント用に約300のドメインをホストしています。それらはすべてトラフィックが少ないので、サーバーの負荷は問題ではありません。

理論的には、サーバー上にこのような低トラフィックドメインをいくつ持つことができるかは制限されないはずですが、サーバー上にドメインが多すぎると、各着信要求をチェックするためのドメインのリストが多すぎると、Apacheの速度が低下するのではないかと心配しています。ダウン。

Apache構成の長さと、問題なく処理できる異なるドメインの数の経験則はありますか? 500大丈夫ですか? 5000?

明確化:サーバーが処理できるトラフィックの量については質問していません。この特定のサーバーは、現在のトラフィックの少なくとも2倍の量を処理できることを私は知っています。ドメインの数が重要な要素であるかどうかを知りたいです。

9
Gene Vincent

文字通り何千ものドメインを持つサーバーが問題なく実行されているのを見てきました。実行しているサイトの数だけでパフォーマンスが大幅に低下することはありません。

サーバーの応答性に影響を与えるのは、要求の総数と、要求ごとに必要なCPU(および帯域幅、ディスクIO、データベース呼び出しなどの他のリソース)の量です。

9
splattne

この種のことには、魔法の経験則はありません。それはすべてハードウェア仕様とソフトウェアチューニングに基づいています。新しいサイトを1つ追加してから、サーバーが転倒して窒息死するのを目にすることはありません(ただし、ゲートのすぐ外にある非常に使用率の高いサイトであり、準備ができていない場合を除きます)。ほとんどの場合と同様に、サーバーのパフォーマンスを監視する必要があります。サーバーのパフォーマンスが低下し始めたら、その時点で評価し、ハードウェアのアップグレードまたは新しいドメインホスティングを処理するための新しいサーバーについて確認します。したがって、明確なポイントに答えるために、それはドメインの数ではなく、各ドメインがサーバーへの負荷として個別にもたらすものについてです。マジックナンバーはありません。

4
Holocryptic

http://httpd.Apache.org/docs/2.2/vhosts/details.html#hostmatching 参考になるかもしれません。 Apacheは、ハッシュテーブルを使用して*:80にマップされていないVHostを処理し、そのIP:portに割り当てられているすべてのVHostのリンクリストを反復処理して、一致するServer(Name | Alias)を見つけます。そのプロセスが著しく高価になる前に、おそらく何百万ものドメインをホストする必要があるでしょう。

http://httpd.Apache.org/docs/2.2/vhosts/mass.html を確認し、現在のアプローチに対してこれをベンチマークすることもできます。リンクリストトラバーサルがlstat()よりも時間がかかるほど十分なVHostを取得すると、VirtualDocumentRootは個別に指定されたVHostよりも高速になります。

3
BMDan

約8000以上のドメインをホストするVPSサーバーがいくつかあります。サーバーは正常に動作しており、平均負荷は常に0.xxレベルです。問題なくもっと扱えると思います。ドメインを追加または削除する場合、Apacheの再コンパイルに時間がかかります。また、httpd.confファイルは非常に大きく、約60Mです。ドメインの数を約5000に制限する方が安全です。

1
garconcn