Phoenix builds on the Elixir lib Plug, which uses the cowboy webserver, which is written in Erlang. (in theory, Plug is webserver-agnostic but so far there is only one adapter, which is for cowboy, which has become the de-facto webserver for Erlang/Elixir-based projects).
Cowboy is well-documented, its user guide is found here, including a section on its internals. For the webserver, Cowboy itself uses Ranch, a TCP socket acceptor pool which (iirc) does the actual job of spawning one process per connection. It has a user guide as well.
Another Erlang-based webserver is Elli, which I think people also have written Plug adapters for, but Elli is more barebone than Cowboy and not as well-maintained.