2012-02-23 5 views
3

私はpython web devの世界に新しく、なぜApacheの環境が必要であるのか混乱していますが、http severのpython web appを実行できますか?また、私の経験から、私は何も設定せずにdjangoアプリを実行することができました。なぜ我々はまだApache + mod_wsgiが必要ですか?パフォーマンスのために?はPythonに組み込まれているSimpleHttpServerを持っている間に必要なApacheです

実際には私が本当に混乱していることは....どのように私のエントリポイントのコードを記述する必要がありますか?例えばチェリーピー/トルネードのような他の先進的な「Webサーバー」もあると聞きましたが、それらのすべてが異なるエントリーポイントコードを必要とします。 Apache(+ mod_wsgi)が他のWebフレームワーク(上記のWebサーバーと呼んでいます)と重複していないのでしょうか? (ほとんどの場合)私たちはプロダクションでApacheを使うべきですが、他のものを 'addon'として使うべきでしょうか?ありがとう

答えて

7

パフォーマンス、安定性、拡張性、セキュリティ、...

は、簡単なテストやすばやく開発マシン上のWebアプリケーションを実行する場合に便利ですが、Apacheのように拡張性のない方法でありますサーバ。セキュリティは組み込みのものではあまり強くないでしょう。

また、Apacheでは、仮想ホストや、複数の種類のサーバサイドプラットフォーム(Ruby on RailsアプリやDjangoの同じポート/ IP上)など、多くの余分なものを処理することができます。組み込みのサーバーで実現します。

+0

元の投稿をより良い質問で更新しました。どうぞご覧ください。ありがとう – John

+0

私はPythonのWebフレームワークに関する経験がないので、私は彼らがどのようにホストされているのか分かりません。私はDjangoに何らかのエントリポイントプロトコル(つまり、ウェブサーバが受け取った要求に応じて特定の関数を呼び出す)を持つと疑うでしょう。 DjangoアプリケーションをホストするすべてのWebサーバーは、要求を対応するメソッド呼び出しに変換する必要があります。あるいは、Djangoがこれを行うこともあります。この場合、リクエストはちょうどDjangoに転送されます。私は、各サーバがDjangoの世界にどのように入り込むのかを想像することはできません。 – wvdschel

2

Apacheはpython SimpleHTTPServerよりも優れています。

SimpleHttpServerはシングルスレッドですが、Apacheは複数のスレッドを簡単に処理できます。 Apacheは、SimpleHttpServerが実行できない多くの方法で設定することもできます。 Apacheはリクエストのロギングを使いやすいので、&ロギングのデバッグに役立ちます。 HTTPサーバに内蔵され

+0

質問は、実際には、**なぜそれが良いですか?** – penartur

+0

元の投稿をより良い質問で更新しました。どうぞご覧ください。ありがとう – John

0

パフォーマンスとスケーラビリティが、本番環境でApacheを使用する理由です。 SimpleHTTPServerは、テストや内部使用には問題ありません。

0

はい、一般的にパフォーマンスのために必要です。

Apacheを設定する作業が複雑になるのを避けたい場合は、時間がかかっていて経験が不足していると妥当かもしれませんが、おそらくCherryPyを使用してDjango 。それはビルトインよりもはるかに優れたパフォーマンスを持つすべてのPython Webサーバーを備えています。

その手順はhereです。

+0

元の投稿をより良い質問で更新しました。どうぞご覧ください。ありがとう – John

2

最近、標準エントリポイントはWSGIアプリケーションオブジェクトです。かなりよくすべてがそれをサポートしています。どのように各Webフレームワークが1つを公開するのか、それを使用するためにWSGIの各ホスティング機構を設定する方法は異なります。しかし、コアでは、Webサーバーとアプリケーションの間の実際のインターフェースは同じです。

関連する問題