本番環境では、なぜrails sではなくNginx,Puma?
rack(rails s)はあくまで、アプリケーションサーバー。なので、webサーバが持っているような負荷を分散させるための機能などがなく、実運用していく上で、大勢の人がサイトを見たときなどにとても重くなってしまう。
nginx: たくさんの人から、同時アクセスをされもrails sよりも数多くのアクセス数を対応できる。Railsで本番環境を構築するときに、puma, rackだけだと、高速な処理や高負荷に耐えられないため、webサーバであるnginx(pumaはwebサーバだが、貧弱。アプリケーションサーバとして使われる。RailsとRackが必ずセットで。)でそれらに対応できるようにしている。
puma: Rails5から、アプリを起動すると、pumaが内部で動くようになっている 厳密に言うと、Rackを提供するためのアプリケーションサーバ
It is designed for running Rack apps only.
アプリケーションサーバだけでも、機能するが、nginxを加えることで、多い処理に対応できたり、高速化することが可能になる
参考
https://qiita.com/takahiro1127/items/fcb81753eaf381b4b33c
https://kitsune.blog/rails-summary