Springcloud连接nacos集群,nacos地址配置为nginx,报错:requst nacos server failed

先说下版本:
Spring cloud: Hoxton.SR12
spring.cloud.alibaba: 2.2.9.RELEASE
spring.boot: 2.3.12.RELEASE
Linux Centos7
nacos-server:2.1.0
nginx: 1.20.2

环境说明:
nacos正常搭建三个集群 8849,8851,8853,能正常启动和访问,
nginx 做反向代理端口8002:浏览器访问nginx端口能正常转发nacos,一切都没有问题;
在这里插入图片描述
当通过Springboot配置文件连接nacos 地址更改为nginx时,项目启动报错,连接不上ngxin。
在这里插入图片描述
反复的查阅资料:最终可信的说法是nacos 2.X版本有端口偏移量,这个我信,因为在搭建nacos集群时,碰到了这个问题,当时端口定义为8849,8850,8851,最后启动后8849和8851能正常启动,8850报地址被占用。随后将8850改为8853,才得以解决。

nginx在浏览器上能正常转发到nacos节点,但是项目里连接不上nacos服务,警过一个星期的摸索,最终解决方案如下:

  1. 将linux 关机,然后依次启动nacos集群,保证nacos集群浏览器能正常访问。
  2. 编辑nginx.conf,在http 同级下新增stream 模块,其中所有端口都和你原来定义的端口加1000
    在这里插入图片描述
  3. 启动nginx,如果报stream的错,可能是你在安装ngxin是没有安装stream模块。
    nginx: [emerg] “stream“ directive is not allowed here in
    解决:找到你之前解压的nginx的包,文件名为nginx带版本号那个,然后进入
    在这里插入图片描述
    执行如下指令:./configure --with-stream 等待安装
    安装完后:执行make && make install
    重点:将虚拟机关机重启 重启nacos,重启nginx
  4. 浏览器访问nginx能正常转发到nacos页面。
  5. springboot部署如下,没什么特别之处,nacos的地址端口为nginx
    在这里插入图片描述
  6. 启动项目:
    在这里插入图片描述
  7. 访问nacos注册中心:服务成功注册上去了
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43865196/article/details/130357194