In the <a href="http://www.phoenixframework best slimming aids.org/docs/deployment”>advanced deployment docs they state “In many cases, we’re going to have more than one application running in our hosting environment, all of which might need to be accessible on port 80. Since only one application can listen on a single port at a time, we need to use something to proxy our application.”
Those app ports can be changed instead of having to use a reverse proxy for phoenix. I tend to have each app on its own server anyway. For example, having a database on the same server as the web app can cause issues when load gets too high for one, it could crash the other.
Reverse proxies can only handle 50k–300k concurrent websocket connections. We’d be really hamstringing our app by using a reverse proxy if we wanted to take advantage of that magic 2mil concurrent connections. Phoenix can do ssl and caches static assets. Is there a reason to use nginx? Let me know if I’m wrong in the comments.
As for running multiple nodes and load balancing, shouldn’t we be embracing the erlang distributed way of doing things? I’m still new to elixir and the erlang world but it seems like this is a problem that would already be solved. Instead of running a reverse proxy for load balancing is there an erlang/elixir way that we should be promoting in the guide?