0

ドキュメントには、静的コンテンツがDjangoアプリケーションをメモリから追い出すため、Djangoプロジェクトと同じマシンに静的ファイルをサーバーするべきではないと記載されています。この問題は、1つのサーバーに複数のDjangoプロジェクトがあることからも発生しますか?すべてのWebサイトプロジェクトを1つの非常に大きなDjangoプロジェクトに結合する必要がありますか?

私は現在、modWSGIを使用したApacheのphpスクリプトとともにDjangoを提供しています。これも効率の低下を引き起こしますか?

または、警告は静的コンテンツのみを対象としています。これは、20〜30の異なるPHP / Djangoプロジェクトを提供しているときに、数百のファイルを提供するときに問題が発生するためです。

4

2 に答える 2

2

この設定はまったく問題ないと思います。もちろん、ハードウェア、負荷、および他のプロジェクトに依存します。ただし、ここでは、使用状況/パフォーマンスを試して監視することができます。
静的ファイルに別のサーバーを使用するという提案は、リソースにとってより効率的であるため、理にかなっています。しかし、1 つのサーバーが十分に機能する限り、2 番目のサーバーを使用する理由はわかりません。

もう 1 つの質問は、使いやすさや構成の容易さよりもパフォーマンスとは関係がありませんが、本当にすべてを同じサーバーで実行するかどうかの決定です。

多数の小さなサイト (および一部の php レガシー) を含む 1 つのセットアップでは、4 つの仮想サーバーを備えた 1 台のマシンを使用します。

  • nginx(およびワニス)を実行しているwebhead
  • データベース
  • シンプルな apache2/php サーバー
  • gunicorn + Supervisord を使用した django サーバー

nginx はすべてのサイトを処理し、アプリケーション サーバーにプロキシするか、静的コンテンツを提供します (NAS 経由)。インストールと取り扱いが非常に簡単で、必要に応じて 1 つのピースを簡単にスケールアウトできるため、このセットアップが気に入っています。ブ

于 2012-05-13T11:33:39.640 に答える
0

ドキュメンテーションに「Django プロジェクトと同じマシンに静的ファイルをサーバーするべきではない。なぜなら、静的コンテンツは Django アプリケーションをメモリ不足にするから」と書かれている場合、ドキュメンテーションは非常に誤解を招きやすく、ほぼ間違いなく間違っています。

同じシステムで PHP を使用している場合の 1 つの提案は、Python Web アプリケーションを実行するために mod_wsgi デーモン モードを使用し、Python Web アプリケーションごとに 1 つのデーモン プロセスを使用していることを確認することです。

Python Web アプリケーションを組み込みモードで実行しないでください。これは、mod_php と同じプロセスで何かを実行していることを意味し、拡張機能を含む PHP は実際にはマルチスレッドセーフではないため、prefork MPM を実行する必要があることを意味します。prefork MPM を実行しているときに Apache に埋め込まれた Python Web アプリケーションを実行することは、適切に Apache をセットアップする方法を十分に理解していない限り、悪い考えです。Apache を正しく設定しないと、次のような問題が発生します。

http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html

簡単に言えば、PHP と Python の Apache 構成はまったく異なる必要があるということです。ただし、Python Web アプリケーションに mod_wsgi デーモン モードを使用することで回避できます。

于 2012-05-13T23:57:03.540 に答える