Djangoで、通常はテキストファイルで構成された一連のアプリケーションの管理インターフェイスとして使用される小さなアプリを作成しています。ユーザー入力の解析、データベースエントリの変換などはあまり行いません。フラットファイルに変換し、情報を含むきれいなテーブルを表示します)、ほとんどの場合、一度に1人のユーザーが使用します。
唯一の制約は、それが実行されるサーバーが低スペック(Pentium M 1,8GHz、512MB RAM)であり、そのコンピューティング能力のほとんどを管理インターフェイスではなく管理対象アプリで利用できるようにすることです。記録のために、私はCentOS5を使用しています。
どのWebサーバーを使用できますか?これまでのところ、私は次のオプションと意見を集めました:
この種の環境に適したソリューションを私に勧めてもらえますか?私は大きなワークロードや同時実行性に焦点を合わせていません(ほとんどの人が同様の質問をしているように)、アイドル時または単一セッションの場合は、RAM)とCPU時間をできるだけ少なくしたいだけです。
また、ウェブサーバーやリバースプロキシなどの導入経験が少ないので(基本は知っていてグーグルで道を見つけることができますが)、経験のある方のご協力をよろしくお願いします。この種の問題で。
私の意見では、セットアップの最も簡単な解決策の1つは、nginx
とgunicorn
です。
'' 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
を試してみることをお勧めします。
経験不足とその素晴らしい管理GUIを考慮すると、 チェロキー をお勧めします。 Djangoプロジェクトを構成するためのウィザードが組み込まれた、高速で使いやすいWebサーバー。
Apacheを使用して、不要なモジュールを無効にし、最初からあまりにも多くのプロセスを生成しないようにします。
Apacheのコアがどういうわけか重いという考えは、いくぶん神話です-モジュラー設計のおかげで、必要なだけ頑丈または軽量にすることができます。
これには、既存の配布パッケージおよび更新システムを使用できるという追加の利点があります。
PS:アプリケーションが実行されているが、Webサーバーの管理インターフェイスにアクセスされていない場合、OSは未使用のページをディスクにスワップアウトします。 OSを信頼して、必要なときに必要なものを常駐させます。
PPS:2GB DIMMのコストは、この問い合わせの入力に費やす時間よりも少なくなります。少し時間を取って、質問のメタ分析を行ってください。
私の目には、非プラスウルトラソリューションはnginx + uwsgiです(自分でコンパイルしてさらに構成する必要があるため、セットアップが少し難しくなります)。最も簡単で推奨されるのはApache + mod_wsgiです。 mod_wsgiを使用して適切に構成されたApache2が正しい選択だと思います。
Django(Python)+ Webサーバー?次に、 トルネード も見てください(ただし、必要以上に処理できます)。