1

次のパラメータに基づいてApache httpサーバーを操作することに興味がありました。

  1. 1 つのポートで listenin を実行している 1 つのサーバー上
  2. ドメインごとに 1 つずつ、複数の仮想ホストを構成した
  3. 各仮想ホストをポート 80 でリッスンするインスタンスとして実行する
  4. 残りを再起動することなく、1 つのドメイン構成をリロードできました。

メモリ消費量に疑問があります。ある場合、どうすれば改善できますか。

  • httpサーバーが1つしか実行されていないとすぐに、それがメモリの問題になるとは思いません(間違っていれば修正してください)。

  • または、各インスタンスが独立したメモリを消費するため、そうかもしれませんか?

  • メインのApache構成ファイルですべてのVirtuallHostを実行するのと同じメモリ消費量にする必要がありますか?

どうもありがとう、主にドメインごとに1つのインスタンスを実行したいのは、必要なときに他のVirtualHost構成を再起動せずに各VirtualHost構成を再起動できるようにしたいからです。

ありがとう

4

2 に答える 2

2

まず、ポート 80 をリッスンしている場合、複数の apache インスタンスを実行できないと思います。ポートをバインドできるプロセスは 1 つだけです

Apache にはいくつかの子プロセスがあり、プロセスのすべての子プロセスはポート 80 でリッスンしますが、各子プロセスは任意の VirtualHost に使用できます。

ポート 80 で異なる IP をバインドすることで実現できるため、IP ベースの VirtualHostsを使用できます。または、1 つの Apache を他のポートにバインドされた他の Apache インスタンスのプロキシとして使用します。

しかし、再起動の問題は実際の問題ではありません。Apache は、実行中のジョブの終了後に各子プロセスがリロードされるセーフ リスタート (一部のディストリビューションではリロード) を実行できます。したがって、HTTP リクエストが強制終了されることなく、透過的に再起動されます。VirtualHost の追加または削除には再起動は必要ありません。単純なリロードで十分です。

于 2011-12-16T16:11:57.150 に答える
0

個々のインスタンスなしであなたが望むものを達成する方法があると私は考えなければなりません。真剣に大規模な仮想ホスティング会社はapacheを使用していますが、私はあなたのニーズが彼らのニーズよりも複雑であるとは信じがたいです。例: http: //httpd.apache.org/docs/2.0/vhosts/mass.html

おそらく、2つのapacheサーバーを実行して、本当に必要なときにローリングリスタートを実行する必要があります。これにより、個々のサイトもダウンするのを防ぐことができます。

于 2011-12-16T06:06:56.103 に答える