Django Web アプリケーションをデプロイしたいので、Python ファイルを提供する Web サーバーを選択する必要があります。
私の本番サイトは、データベースと Web サーバーをホストする単一のサーバー上にあることを述べておきます。勢いがついたら、データベースを専用サーバーなどに移行する予定です。
私の質問は次のとおりです:
- ウェブ サーバーは 1 つ使用すべきでしょうか、それとも 2 つ使用すべきでしょうか。この質問の背景としては、静的メディア ファイルの提供には NginX を使用し、Python の提供には Apache を使用することを推奨する人が多いため、次のような疑問が生じます。
- なぜ 1 つのサーバーだけを使用できないのでしょうか。Apache は時々厄介な場合があることは理解していますが、静的メディア ファイルと Python ファイルの両方を提供するのに NginX を使用する人がいるのではないかと思います。
- 1 つのサーバーを使用する場合、Apache と NginX のどちらが適していますか。私は Apache の経験がありますが、NginX については良いことしか聞いていません。
- mod_wsgi ではなく FastCGI を使用する利点は何ですか?
よろしくお願いします
ベストアンサー1
ウェブ サーバーは 1 つ使用すべきでしょうか、それとも 2 つ使用すべきでしょうか。この質問の背景にあるのは、静的メディア ファイルの提供には NginX を使用し、Python の提供には Apache を使用することを多くの人が推奨していることです。このことから、次のような疑問が湧いてきます。なぜ 1 つのサーバーだけを使用できないのでしょうか。Apache が時々厄介な場合があることは承知していますが、静的メディア ファイルと Python ファイルの両方の提供には NginX を使用する人がいるのではないかと思います。
現在、何らかの方法で既に構成されている他のサイトがない場合、またはさまざまなサーバー間で相互に排他的な特定の機能が必要な場合は、複数のサーバーを使用する理由はないと思います。これにより、不要な複雑さと構成が追加されるだけです。
1 つのサーバーを使用する場合、Apache と NginX のどちらが適していますか。私は Apache の経験がありますが、NginX については良いことしか聞いていません。
「どちらが優れているか」という質問はどれも、通常は好みの問題です。具体的な答えを得るには、おそらくより具体的な質問をする必要があります。
すでに特定のサーバーの使用経験があり、すぐに稼働させたいだけであれば、とりあえずは既に知っているサーバーを使用することをお勧めします。後でいつでも別の Web サーバーに切り替えることができます。一方で、これは代替案について学ぶ良い機会でもあります。
要約:設定と管理が簡単なものを選びます。個人的には、nginx と gunicorn を選びます。主な理由は、簡単で、困ったときに利用できるリソースが豊富だからです。
パフォーマンスについてはあまり心配しないほうがいいと思います実際に必要すべての主要な Web サーバーは試行およびテストされているため、ほとんどの場合、アプリケーションの要件と実際の負荷に基づいて、いずれにしても監視、モデリング、および微調整のためのテストが必要になります。
mod_wsgi ではなく FastCGI を使用する利点は何ですか?
Python に関して、WSGI、CGI、FastCGI、mod_python の違いと用途は何ですか?
読むべき記事(古いものもあれば新しいものもある)
- http://gunicorn-docs.readthedocs.org/en/latest/deploy.html
- https://docs.djangoproject.com/en/dev/howto/deployment/
- http://serversforhackers.com/editions/2014/03/25/nginx/
- http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html
- http://www.thegeekstuff.com/2013/11/nginx-vs-apache/
- http://raspberrywebserver.com/raspberrypicluster/comparing-the-performance-of-nginx-and-apache-web-servers.html
- http://www.bearfruit.org/2013/04/19/reddit-is-melting-our-server-heres-what-we-did-nginx-apache-django-and-mysql/
- 本番環境では、Apache + mod_wsgi ですか、それとも Nginx + mod_wsgi ですか?
- http://www.peterbe.com/plog/fcgi-vs-gunicorn-vs-uwsgi
- http://www.aosabook.org/en/nginx.html
- http://c2.com/cgi/wiki?PrematureOptimization