Why is it commonplace to use the next architecture?
Client (e.g: browser) --> Nginx --> Puma --> Rails App
I think that we can go without using Puma at all since it's also an HTTP server as Nginx with less capabilities.
Having Puma in the middle, is having a second HTTP server, and we already have Nginx that handles HTTP requests.
The only thing that Nginx would lack instead is a Rack interface to communicate with Rails, but that just a matter of implementing an Rack adapter for it.
So instead we can have this and eliminate redundancy:
Client (e.g: browser) --> Nginx --> Rails App
Basically what am I missing here? Puma knows how to handle various Rails processes? If so, then Nginx can create several worker_processes also.