web-dev-qa-db-ja.com

Django、ワークロードが小さい)向けの軽量Webサーバー

Djangoで、通常はテキストファイルで構成された一連のアプリケーションの管理インターフェイスとして使用される小さなアプリを作成しています。ユーザー入力の解析、データベースエントリの変換などはあまり行いません。フラットファイルに変換し、情報を含むきれいなテーブルを表示します)、ほとんどの場合、一度に1人のユーザーが使用します。

唯一の制約は、それが実行されるサーバーが低スペック(Pentium M 1,8GHz、512MB RAM)であり、そのコンピューティング能力のほとんどを管理インターフェイスではなく管理対象アプリで利用できるようにすることです。記録のために、私はCentOS5を使用しています。

どのWebサーバーを使用できますか?これまでのところ、私は次のオプションと意見を集めました:

  • Apacheは、この種の展開には大きすぎる可能性があります
  • lighttpd + FCGI-不安定な可能性があります
  • lighttpd/nginx as rev proxy + Django Webサーバー-Django Webサーバーは開発/デバッグを目的としていると思っていたので私には奇妙に見えます

この種の環境に適したソリューションを私に勧めてもらえますか?私は大きなワークロードや同時実行性に焦点を合わせていません(ほとんどの人が同様の質問をしているように)、アイドル時または単一セッションの場合は、RAM)とCPU時間をできるだけ少なくしたいだけです。

また、ウェブサーバーやリバースプロキシなどの導入経験が少ないので(基本は知っていてグーグルで道を見つけることができますが)、経験のある方のご協力をよろしくお願いします。この種の問題で。

2
galo

私の意見では、セットアップの最も簡単な解決策の1つは、nginxgunicornです。

'' gunicorn ''の場合、次のようなことを行うだけで済みます。

$ cd path/to/yourdjangoproject
$ gunicorn_Django --workers=4

そして、これのためのかなり標準的なnginxセットアップは

server {
    ...

    location / {
        proxy_pass http://127.0.0.1:8000;
        break;
    }
}

Fcgiを使用し、flupに依存するよりも確かに優れていますが、手を汚してもかまわない場合は、zaub3r3rが提案したようにnginx + uwsgiを試してみることをお勧めします。

4
fim

経験不足とその素晴らしい管理GUIを考慮すると、 チェロキー をお勧めします。 Djangoプロジェクトを構成するためのウィザードが組み込まれた、高速で使いやすいWebサーバー。

2
wzzrd

Apacheを使用して、不要なモジュールを無効にし、最初からあまりにも多くのプロセスを生成しないようにします。

Apacheのコアがどういうわけか重いという考えは、いくぶん神話です-モジュラー設計のおかげで、必要なだけ頑丈または軽量にすることができます。

これには、既存の配布パッケージおよび更新システムを使用できるという追加の利点があります。

PS:アプリケーションが実行されているが、Webサーバーの管理インターフェイスにアクセスされていない場合、OSは未使用のページをディスクにスワップアウトします。 OSを信頼して、必要なときに必要なものを常駐させます。

PPS:2GB DIMMのコストは、この問い合わせの入力に費やす時間よりも少なくなります。少し時間を取って、質問のメタ分析を行ってください。

1
sneak

私の目には、非プラスウルトラソリューションはnginx + uwsgiです(自分でコンパイルしてさらに構成する必要があるため、セットアップが少し難しくなります)。最も簡単で推奨されるのはApache + mod_wsgiです。 mod_wsgiを使用して適切に構成されたApache2が正しい選択だと思います。

0
zaub3r3r

Django(Python)+ Webサーバー?次に、 トルネード も見てください(ただし、必要以上に処理できます)。

0
Henk