IMO, there’s really not a best setup – it’s completely subjective.
If you’re only running a handful of sites right now and performance isn’t an issue, then there’s really no need to upgrade or consider spreading them across multiple Droplets.
If you know you’re going to be hosting 25-100 sites (for example) in the not too distant future, then I might look in to an alternative setup that is geared more towards real multi-site hosting.
For example, you might setup a Droplet as a gateway or proxy using NGINX. You’d point all domains to that server and it’d handle sending requests to whichever server the application is hosted on. It’s much like load balancing, though you’re not really distributing load across numerous servers, instead you’re accepting an incoming request and using one server to route.
- - Droplet 01 (app01, app02, app03)
- - Droplet 02 (app04)
- - Droplet 03 (app05, app06)
NGINX would run on the Gateway and on each of the Droplets hosting your applications. A request is received by the gateway and would then route (over the private network) to the correct app.
The benefit here is that when you setup the server blocks on the Gateway, you can simply change the private IP of the server for any app should you need to move it around. Restart NGINX on the gateway and the app resolve to the new server instantly.
You don’t have much redundancy using this method (really, none with just this basic of a setup), though this is probably one of the most simple setups you could do without moving in to something more complex such as Loading Balancing over multiple Gateways which route to numerous hosts.
If you wanted to go more complex, you can definitely do it and NGINX can handle the majority of it for you. It’ll work as a Load Balancing, Proxy, Web Server, etc. Although not recommended, you can even mix all three (I tested this – really odd setup, as noted, I wouldn’t recommend it – but it will work).