gpt4 book ai didi

docker - 在另一个Nginx负载平衡器之后使用多个Docker Nginx负载平衡器,这是否被认为是不好的做法?

转载 作者:行者123 更新时间:2023-12-02 21:33:01 25 4
gpt4 key购买 nike

我公司中有一个开发/实验服务器,我们的项目主要是Java Web应用程序,因此当我希望它将我们的项目移动到Docker并水平扩展以测试我们的无状态服务器时,我确实为每个项目创建了docker-compose与自己的Nginx负载平衡器。结果,我最终得到了6个可伸缩项目,每个项目都有一个Nginx,因此我将所有Nginx附加到同一网络,并创建了主Nginx,该主Nginx附加到主机的端口80,并在所有正在运行的Nginx之间进行平衡。
问题:我遇到了定义上游的问题,因为它要求服务启动,有时某些项目正在维护中,并导致Nginx崩溃。
解决方案:在我的主Nginx后面添加单独的Nginx可以帮助我随时运行每个项目,并且仅在Nginx代理传递中使用变量名,因此,在任何Java项目的上游关闭的情况下,我仍然可以运行主Nginx。
每个nginx都有一个块

upstream mydocker-service{
...
}
并且主要的Nginx包含多个
set $stream mydocker-service;
用作proxy_pass。
最后,我最终由6个Nginx负责每个项目的上游,并由主Nginx负责将请求重定向为proxy_pass到每个Nginx。
我们的项目不是Spring,也无法转移到Spring。
所以我的问题是,这被认为是一种不好的做法,我做对了吗?我有什么更好的解决方案可以使用而无需额外开销,因为我只有一个实例,所以可以做kubernetes吗?

最佳答案

如果我正确理解了您想要的内容,则可能应该制作一个1节点的群集。 Swarm将提供扩展服务的负载平衡,并且您不需要为每个项目使用nginx实例。要启用集群,您所需要做的就是运行docker swarm init,然后您将使用docker stack deploy -c yourcomposefile.yml yourstackname部署服务。要扩展服务,可以使用撰写文件中的副本设置,也可以运行docker service scale yourservicename=3(将服务扩展到3个副本)。

关于docker - 在另一个Nginx负载平衡器之后使用多个Docker Nginx负载平衡器,这是否被认为是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64020197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com