はじめに
今回は以下の内容で、Nginxについて詳しく触れたいと思います。
- C10K問題
- プロキシとリバースプロキシ
【YouTube動画】C10K問題、イベント駆動、プロキシ、リバースプロキシについて
C10K問題とイベント駆動
C10K問題のCはClient、10Kは10,000の略です。
1台のサーバーに1万台のクライアントがアクセスしたとき、処理が重くなるという問題です。
これはApatchでは解決が難しく、Nginxで解決できた問題です。
ApatchとNginx
Apatchでは、マルチプロセスを採用しており、1コネクションに対し1プロセスを割り当てます。
そのためプロセスが増えていくと、使用できるメモリが減っていくので、処理が重くなります。
Nginxでは、イベント駆動を採用しており、クライアントの接続を1プロセスとして扱います。
1プロセスで多数のクライアント接続を扱うために、ノンブロッキングIOや非同期IOを使用しています。
この辺りは動画で詳しく説明しているので、ぜひ確認してみてください!
プロキシとリバースプロキシ
Nginxはプロキシサーバーやリバースプロキシとしても利用できます。
プロキシサーバーは、クライアント複数、サーバー1つという構成で、外部からのアクセス制限や検閲などに使用できます。
リバースプロキシはクライアント1つ、サーバー複数という構成で、アクセス分散やキャッシュなどに使用できます。
まとめ
今回、NginxとC10K問題の関係、プロキシとリバースプロキシの違いについて説明しました。
何か間違いや指摘がありましたら、コメントよろしくお願いします。