Nacos 2.x 开始,最大的变化就是端口。在默认主端口 8848 之外又新增了三个端口,新增端口是在配置的主端口 server.port
的基础上,进行一定偏移量自动生成。
-
8848
(主端口,默认8848)web页面端口及相关http接口调用使用 -
9848
(主端口 +1000)客户端 gRPC 请求服务端端口,用于客户端向服务端发起连接和请求 -
9849
(主端口 +1001)服务端 gRPC 请求服务端端口,用于服务间同步信息等 -
7848
(主端口 -1000)Jraft 请求服务端端口,用于处理服务端间的 Raft 相关请求
官方文档:https://nacos.io/zh-cn/docs/v2/upgrading/2.0.0-compatibility.html
注意事项:
-
若需要对主端口默认值 8848 做修改,8848 在修改后的一定要大于 1000。
-
如果需要使用 Nginx 将 Nacos 对外暴露进行端口转发,除了默认主端口 8848 之外,还需要额外转发(默认主端口+1000=9848)
9848
这个端口,并且这个 9848 端口在 Nginx 上需要配置成 TCP 转发。不能配置 http 转发,否则连接会被 Nginx 断开。 -
另外两个端口 9849 和 7848,是服务端之间的通信端口,请勿暴露到外部网络环境和客户端测,一般这两个端口不需要在 Nginx 中配置 TCP 转发端口。
针对 Nginx 映射的TCP端口,要特别说明一下: 如果你客户端配置的 nacos 的地址后面带了 “冒号端口”,则 nginx 中需要配置的 TCP 端口,是要拿你冒号端口的值加1000进行配置。地址 http://nacos.test.com:80 对应 Nginx TCP 端口是 1080。如果你地址后面没有写冒号,我们常规理解是80端口,但是实际上nacos 使用的是服务端配置的主端口+1000,地址 http://nacos.test.com 对应的 Nginx TCP 端口是 9848,这可能是 nacos 当前版本的一个bug,截稿时的版本 v2.3.2 还是这样的。
实操经验: 其实你不用太过于纠结并计算到底需要你在 Nginx 中配置的 TCP 端口号是多少,直接查看 Nacos 客户端报错日志即可确定需要在 Nginx 中配置的 TCP 端口号,如下图所示:
检查你的Nginx是否支持TCP转发的命令:
sudo nginx -V | grep with-stream
有关 Nginx 如何配置转发 TCP 端口,详见文章:https://blog.csdn.net/catoop/article/details/121311807
(END)