Nacos 2.0 集群,并使用 Nginx 做代理

Nacos 集群节点配置
Nacos 2.x 和 Nacos 1.x 在节点配置的方式上是一样的,基本上没什么区别。

application.properties
Nacos 集群的 application 配置和单节点模式的 application 配置方式是一样的,简单配置一下端口和数据库链接就 OK 了

cluster.conf
Nacos 启动集群模式时,要配置一下 cluster.conf 文件。

IP 尽量不使用locaolhost和 127.0.0.1 ,使用通过ifconfig 查询到的本地ip地址

如下,否则可能会出问题。

#2023-10-15T16:12:31.902944700
192.168.10.A:8850
192.168.10.B:8860
192.168.10.C:8870

Nacos 2.x 客户端实现 Nginx 代理配置

Nacos 2.x 相对复杂一些。我们需要用到 nginx 的 stream 模块代理偏移之后的 gRPC 协议的端口。
stream 模块和 http 模块同级

有个地方需要注意一下,如果没开启用户名密码的话,只代理偏移之后的端口即可,如果你开启了 Nacos 用户名登录认证,虽然 Nacos 2.x 的客户端链接服务端请求数据时使用的是偏移之后的端口,但是他登陆认证时请求的端口却是没有偏移的端口。。。不知道是不是和 Nacos 客户端版本有关系,所以我们最好还是把这两组端口都代理一下。

Nginx 配置

http {
    upstream nacos-cluster{
        server 192.168.10.A:8850;
        server 192.168.10.B:8860;
        server 192.168.10.C:8870;
    }
    server{
      listen 80;
      server_name localhost;
      location /nacos {
        proxy_pass http://nacos-cluster;
      }
    }
}
stream {
    upstream nacosGrpc {
        server 192.168.10.A:9848; //这里配置的是偏移之后的端口
        server 192.168.10.B:9848; //这里配置的是偏移之后的端口
        server 192.168.10.C:9848; //这里配置的是偏移之后的端口
    }
    server {
        listen 9002; //nginx监听偏移1000的端口,因为nacos客户端会链接 8002+1000 这个端口,代理的是nacos服务端偏移后的端口
        proxy_pass nacosGrpc;
    }
}

项目配置

spring:
  application:
    name: userservice
  cloud:
    nacos:
      config:
        server-addr: nginx_host:80
        file-extension: yaml
        namespace: public
      discovery:
        namespace: public
打赏
评论区
头像

本网站由提供CDN加速/云存储服务