如何解决Nginx负载均衡器在Docker中运行的高可用性
我正在为后端Web服务器运行nginx负载平衡器容器,
由于我只有一个容器作为nginx负载均衡器运行,因此如果容器崩溃/崩溃,客户端将无法访问Web服务器,
下面是nginx.conf
events {}
http {
upstream backend {
server 1.18.0.2;
server 1.18.0.3;
}
# This server accepts all traffic to port 80 and passes it to the upstream.
# Notice that the upstream name and the proxy_pass need to match.
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
下面是Dockerfile:
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
我正在像下面那样运行nginx容器
docker run -d -it -p 8082:80 nginx-ls
我正在使用http:// serve-ip:8082
访问以上服务器容器随时可能崩溃或死亡,在这种情况下,我的应用程序无法访问,因此我尝试运行如下所示的另一个容器,由于使用相同的端口,并且由于无法使用相同的端口,这是显而易见的,因此我遇到了以下错误。在同一主机中。
docker run -d -it -p 8082:80 nginx-ls
06a20239bd303fab2bbe161255fadffd5b468098424d652d1292974b1bcc71f8
docker: Error response from daemon: driver failed programming external connectivity on endpoint
suspicious_darwin (58eeb43d88510e4f67f618aaa2ba06ceaaa44db3ccfb0f7335a739206e12a366): Bind for
0.0.0.0:8082 failed: port is already allocated.
所以我在不同的端口上跑了,效果很好
docker run -d -it -p 8083:80 nginx-ls
但是当容器8082关闭时,我们如何告诉/配置客户端使用端口8083容器
或者是否有其他最佳方法来实现具有高可用性的nginx负载均衡器?
注意:由于某些原因,我不能使用docker-compose
解决方法
-
docker-compose down
-
关闭docker桌面
-
从任务管理器进程中杀死docker服务
-
启动docker,弹出窗口会要求您通过net.exe激活docker服务,接受
-
docker-compose up
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。