質問: 現在、独学でプログラミングを勉強しているものです。自分はまだ実務の経験がなくわからないことがあるので質問させていただきます。 例えば、webアプリを公開するためにはサーバーを用意する必要があると思います。そして、自分がサーバーと言われて思いつくのはApacheやnginxといったものです。ですが、node.jsでもサーバーを立てるのは可能ですし、その他、python, php, ruby, javaなどでも同様だと思います。少し前にPythonのDjangoウェブフレームワークで作られたウェブアプリの統計を見たのですが、そのうちの半数近くがサーバーとしてApacheを使っていました。 実際、現場において、すでにあるサーバーを使うのではなくて自分たちで新しく書くということはどれくらあるのでしょうか? また、それはどのように判断されるのでしょうか。 よろしくお願いします。
回答: Webサーバーそのものを、ですか? 自前で作るというのはまずないでしょう。なぜなら**労力に見合わない**からです。 Webサーバーに求められる機能は多岐にわたります。むろん、「単に 80番ポートで待ち受けて、リクエストを解釈して HTML を返す」程度なら手軽に作れますけれども、それを作るより Apache インストールして動かした方が楽ですね。 しかもクローズドな環境ならともかく、外部からのアクセスにさらされるような場合、攻撃に対する対策等も考えねばなりません。その分やるべきことが増えて手軽さは失われます。 組み込み機器等、リソース制限が厳しくて Apache その他の既存サーバーを動かせない、というような状況でもない限り、自前で作る必要性はないはずです。 ※Rasberry Pi とか、Apache どころか Tomcat でさえ動かせますからね......(まあJettyの方が軽いですけど)