部署Nginx的最佳实践

时间:2018-10-22 11:24:27

标签: docker nginx continuous-integration containers continuous-deployment

我对云技术完全陌生,我想使用nodeMongoDBredis来部署我的应用程序。所有这些部分都成为docker容器,并且可以很好地协同工作。 现在我想设置nginx。我想知道部署负载均衡器的最佳实践是什么?我应该将nginx作为docker容器运行吗?还是只是将其安装在系统级别?

3 个答案:

答案 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的访问点非常有用。