How do you scale discourse horizontally?

You can do something like Running Discourse docker alongside Apache and create two web containers with something being a reverse proxy in front.

You can use multisite to have a single container serving multiple sites (using the same plugins and Discourse version). This describes how to do that without an external reverse proxy. If you try that, please leave a comment there and let me know whether it worked. I intend to post it here when I am fairly certain it works.

Running containers on multiple servers is the same as any of the above. You’d have multiple containers sharing the same Redis and Postgres running behind a load balancer.

Mostly doing anything other than the Discourse official Standard Installation is unsupported because there are infinite numbers of ways to do those things.