Help us understand the problem. What is going on with this article?

NginxとApache HTTP Serverの違いメモ

More than 1 year has passed since last update.

簡単なまとめ

Apache HTTP Server

マルチプロセスモデル : 接続ごとにプロセスをフォークするのでメモリがいっぱいになりやすい

  • 利点 : メモリ空間が独立しているので、スクリプト言語が組み込みやすい
  • 欠点 : 同時接続が増えるとメモリが欠乏しやすい

→ とは言え、モジュールを使えば、イベント駆動モデルにもできるよ。Nginxには及ばないけど。

Nginx

イベント駆動モデル : 1プロセス内で、接続ごとにイベント処理を行う。1プロセス1CPUなので、CPUの数だけワーカープロセスが作成できる。

  • 利点 : 接続数が増えても、プロセス数やスレッド数が増えない。消費メモリが増えない
  • 欠点 : 1つのメモリ空間で動作するため、スクリプト言語を組み込めないことがある。

→ とは言え、プロキシサーバとして利用すれば、スクリプト言語を呼び出せるよ。

ではApache HTTP Serverを利用するメリットは

WindowsサーバだとApacheのほうが速いので、同時アクセス数が少なければ選択肢に入る。
最初から機能が豊富なので、その機能を早く利用したい場合に消極的に選択するくらいかな。。
その場合でも同時アクセスが多い場合は、Nginxをリバースプロキシにして、Apacheに流す形になるだろう。すくなくとも、圧倒的に良い部分が分からなかった。

もっと詳細

Apache HTTP Server

モジュール次第で、マルチプロセスでもマルチスレッドでもイベント駆動にもできる。が、イベント駆動としては、nginxの方が優秀。

nginx_apache.png

参照 : http://openstandia.jp/pdf/140228_osc_seminar_ssof8.pdf

Nginx

WebApplicationと連携するときには、プロキシサーバとして動作させる。
- PHP : PHP-FPMで動かし、FastCGI経由で動作させる
- Ruby : unicornで動かし、HTTPプロキシーとしてアクセスする

※ FastCGIはプロセスをメモリ上に永続化することで、起動/終了コストを削減する。

中の人はどう思ってるのか

Nginx からみた Apache

 「わたしはApacheは素晴らしいウェブサーバだと思っている。NGINXはApacheとは異なる利用事例を想定している」と同氏は述べている。「Apacheがライバルだとは思っていない。われわれの顧客は、NGINXをロードバランサや、マイクロサービスの構築に使っているが、どちらもApacheに向いた用途ではない」
 実際、Robertson氏は多くの顧客がNGINXとApacheの両方を使っていることに気づいたという。「顧客はApacheの手前で、負荷分散やアプリケーションにNGINXを使用している。NGINXのアーキテクチャはかなり異なっており、並行的にウェブサービスを提供するのに向いている」と同氏は言う。また、クラウド構成ではNGINXが有利だと述べている。

参照 : https://japan.zdnet.com/article/35092031/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away