docker 使用ngnix为nacos配置负载均衡

1.首先配置nacos集群

[https://blog.csdn.net/qq_43532386/article/details/105135848]

2.下载nginx镜像

docker pull nginx

3.运行

目的:为了获取配置文件 nginx.conf

docker run --name nginx-test -p 8080:80 -d nginx

4.获取nginx.conf

docker cp nginx-test:/etc/nginx/nginx.conf /home/local

5.修改配置文件

vim /home/local/nginx.conf

在nginx.conf下面直接加入

 upstream nacos {
        server 172.17.0.3:8848 weight=1 max_fails=2 fail_timeout=10s;
        server 172.17.0.4:8848 weight=1 max_fails=2 fail_timeout=10s;
        server 172.17.0.5:8848 weight=1 max_fails=2 fail_timeout=10s;
    }

    server{
        listen  1111;
        server_name 192.168.142.128;
        location / {
            proxy_pass http://nacos;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header REMOTE-HOST $remote_addr;
            add_header X-Cache $upstream_cache_status;
            add_header Cache-Control no-cache;
        }
    }

upstream里面的server ip+端口 为集群的结点ip
在这里插入图片描述
server server_name为当前虚拟机的ip地址

6.运行

docker run -p 80:80 --net host --name mynginx -v /home/local/nginx.conf:/etc/nginx/nginx.conf --privileged=true -d nginx

遇到的问题

1.端口配置没有用

解决:
一开始run运行镜像时,没有加 - -net host ,导致docker里面的容器的ip无法识别

2.配置后访问502

upstream里面的ip+端口应该与nacos里面的一致

3.访问404

访问路径问题

http://192.168.142.128:1111/nacos(虚拟机ip+1111端口+/nacos( !!! ))

发布了4 篇原创文章 · 获赞 1 · 访问量 51

猜你喜欢

转载自blog.csdn.net/qq_43532386/article/details/105214177