Nacos 2.0 集群使用 Nginx 做代理

编程入门 行业动态 更新时间:2024-10-24 04:51:09

Nacos 2.0 <a href=https://www.elefans.com/category/jswz/34/1771240.html style=集群使用 Nginx 做代理"/>

Nacos 2.0 集群使用 Nginx 做代理

文章目录

    • Nacos 集群节点配置
      • application.properties
      • cluster.conf
      • 启动Nacos
      • 端口偏移
      • 版本兼容
    • Spingcloud Alibaba Nacos 组件版本对应关系
    • Nacos 1.x 客户端实现 Nginx 代理配置
      • Nginx 配置
      • 项目配置
    • Nacos 2.x 客户端实现 Nginx 代理配置
      • Nginx 配置
      • 项目配置

Nacos 集群节点配置

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

application.properties

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

cluster.conf

Nacos 启动集群模式时,要配置一下 cluster.conf 文件。如下,最好使用真实的 IP 地址,否则可能会出问题。

#2022-10-08T16:12:31.902944700
192.168.10.A:8848
192.168.10.B:8848
192.168.10.C:8848

启动Nacos

如果是 windows 系统使用 startup.cmd 文件启动时,先查看一下文件内的启动模式是不是 cluster

或者使用命令行启动时添加启动参数:
startup -m cluster

端口偏移

Nacos 2.x 新增了 gRPC 协议的通讯端口,一般来说这不需要我们去做任何配置。
Nacos 2.x 在启动时会自动在原有端口 port 的基础上根据偏移量 10001001 再打开另外两个端口。
其中 port + 1000 的端口用于客户端与服务端之间通信
port + 1001 的端口用于集群服务端之间同步

版本兼容

1.x 的客户端可以连接 2.x 的服务端,但是 2.x 的客户端不能连接 1.x 服务端

因为 1.x 的客户端通过基础端口 port 使用 UDP 协议链接服务端,而 2.x 的客户端是通过 port + 1000 端口使用 gRPC 协议链接服务端。1.x 的服务端不会开启 port + 1000 这个端口。

Spingcloud Alibaba Nacos 组件版本对应关系

官方链接

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

如果使用的 Spring Cloud Alibaba 版本中的 Nacos 组件是 1.x 版本的。配置比较简单,如下。

Nginx 配置

upstream nacos-cluster{server 192.168.10.A:8848;server 192.168.10.B:8848;server 192.168.10.C:8848;
}
server{listen 8002;server_name localhost;location /nacos {proxy_pass http://nacos-cluster;}
}

项目配置

server:port: 8090
spring:application:name: gateway-servicecloud:nacos:config:server-addr: nginx_host:8002file-extension: yamlnamespace: publicusername: nacospassword: nacosdiscovery:namespace: public

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

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

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

Nginx 配置

http {upstream nacos-cluster{server 192.168.10.A:8848;server 192.168.10.B:8848;server 192.168.10.C:8848;}server{listen 8002;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: gateway-servicecloud:nacos:config:server-addr: nginx_host:8002file-extension: yamlnamespace: publicusername: nacospassword: nacosdiscovery:namespace: public

更多推荐

Nacos 2.0 集群使用 Nginx 做代理

本文发布于:2024-03-09 14:41:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725262.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:集群   Nacos   Nginx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!