C10K問題

 個々のクライアントがサーバに要求する処理量は小さく、ハードウェアの性能上は問題がなくても、クライアントの数があまりに多いとサーバがパンクすること。(クライアント1万台問題)

 LinuxなどUNIX系のOSでは、メモリ上で実行中のプログラムに与えられるプロセス番号は符号付き16ビット整数だ。つまり、デーモン(サーバプロセス)も含め、すべての実行中のプロセスには1~32767までのユニークな番号が与えられていることになる。ところが、HTTPサーバのApacheなどはクライアント1台からのリクエストに対して1つのプロセスを生成するため、必然的に同時接続数は3万クライアント程度が上限となる

 こうした問題を内包しているApacheに対抗して生まれたのがNginx。

特徴

Apche
・マルチスレッド

Nginx
・シングルスレッド
・非同期
・イベントループ