アプリケーションサーバとは?
Railsを動かすためのサーバのことで、Webサーバの役割もかねることができブラウザからのリクエストを元にリスポンスも返せます。
アプリケーションサーバの種類
Railsのアプリケーションサーバには様々な種類がありますが、少なくともRails6(2019年11月現在)はデフォルトで「Puma」が採用されてます。(なお、Rails4以前ではデフォルトアプリケーションサーバとして「Webrick」が使用されていましたが、WebrickよりPumaの方が速度がかなり早くなっています。)
動作の仕組み
マルチスレッド
複数の処理を同時に扱うマルチスレッドで動作します。そうすることで大量のアクセスを効率的に処理することができます。DBアクセスなんかはマルチスレッドの同時アクセスが発生するのでアクセス負荷に耐えられるようにコネクションプーリングの仕組みがあります。また、環境変数「RAILS_MAX_THREADS」と言う変数でRailsの最大スレッド数を決めることができます。
本番運用を想定した場合
PumaはWebサーバとしての機能を兼ねることもできますが、通常の本番運用ではPumaはアプリケーションサーバとしての機能に特化させて、NginxやApache等のWebサーバと連携させた構成にすることが多いです。
この記事へのコメントはありません。