我最近搭建了一个物理服务器,这对我来说还是第一次,因为我之前一直在使用 VPS 和其他基于云的解决方案。我目前计划在此服务器上托管几个容器:
- 一个可以和朋友一起玩的 Minecraft 服务器
- 同一主机名下的网站
- 不同主机名下的 Angular 网站
- 该网站的 Spring 后端
- 后端的 Mongo 数据库
- 另一个不同主机名下的另一个网站
因此,立即出现了一些问题:
- 三个容器将尝试使用端口 80 和端口 433
- 我不想将后端和 Mongo 容器直接暴露给网络
- 多个容器需要相互通信
因此,我发现的一个解决方案是使用 NGINX(或其他代理)容器来重定向流量。然后我必须将代理放在要公开前端的网络中。然后一种方法是将第二个网站的 angular 前端放在具有后端和 Mongo 数据库的网络中。我还可以将数据库和后端放在单独的网络中,这样 angular 前端就只与后端连接。
minecraft 服务器是唯一使用端口 25565 的服务器,不需要通过代理提供数据。
我想以最佳方式进行设置,所以我的问题是,这种设置的最佳实践是什么,我是否应该使用尽可能多的网络并通过代理提供尽可能多的信息,或者这样做是否有点过头了?我是否忽略了任何安全风险?