我对云技术完全陌生,我想使用node
,MongoDB
和redis
来部署我的应用程序。所有这些部分都成为docker容器,并且可以很好地协同工作。
现在我想设置nginx
。我想知道部署负载均衡器的最佳实践是什么?我应该将nginx
作为docker容器运行吗?还是只是将其安装在系统级别?
答案 0 :(得分:2)
我认为这取决于要为nginx实例提供多少服务。例如,由于您只能将一个nginx实例绑定到80和443端口,因此,如果要在不同域之间共享同一SAP,我会选择在主机(或专用堆栈上运行)上运行的nginx,但看起来很复杂。如果您将SAP用于单个域,则将其包含在堆栈中是很有意义的。
答案 1 :(得分:1)
如果要在container上运行堆栈的其他组件,那么也可以将nginx作为容器运行。 但这取决于您的环境以及可用的工具。您可以在kubernetes以及docker swram或您选择的任何其他工具上轻松缩放nginx。
理想情况下,您需要在单独的容器中运行每个组件,以便可以独立管理,扩展和排除故障。
答案 2 :(得分:1)
将nginx嵌入您的docker网络是一个非常好的主意。作为docker容器,在docker网络中,它可以通过其他服务/容器的名称连接到其他容器,而您将仅在nginx服务上定义端口转发规则。
例如:
docker network create --driver overlay --attachable demo
docker run -d -p 80:80 --network demo --name nginx nginx
docker run -it --network demo --name alpine alpine
您的外壳应放在高山容器中。做一个“ ping Nginx的”。您应该能够ping通它。相反也可能。
因此,现在,在localhost:80(从主机上)部署了nginx,它可以使用其容器/服务名称调用其他容器。对于在Docker网络中部署的Web API的访问点非常有用。