代码编织梦想

项目场景:

搭建Nacos集群后,使用Nginx实现对Nacos集群的负载均衡后,springboot服务通过Nginx方向代理注册进Nacos集群。


问题描述

启动多个nacos集群,通过Nginx反向代理,访问Nginx提供的端口可正常访问nacos首页。
在这里插入图片描述
在这里插入图片描述
但使用springboot启动服务通过nginx提供端口进行服务注册,会发现报错,以下是错误信息。而单机启动nacos ,这可以注册的上去,由此可以判定是集群模式下会出现此问题。
在这里插入图片描述

2022-11-27 16:05:03.925 ERROR 14532 --- [  restartedMain] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, nacos-payment-provider register failed...NacosRegistration{nacosDiscoveryProperties=NacosDiscoveryProperties{serverAddr='localhost:9527', endpoint='', namespace='', watchDelay=30000, logName='', service='nacos-payment-provider', weight=1.0, clusterName='DEFAULT', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='192.168.155.1', networkInterface='', port=9001, secure=false, accessKey='', secretKey=''}},

java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([localhost:9527]) tried: failed to req API:localhost:9527/nacos/v1/ns/instance. code:400 msg: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Sun Nov 27 16:05:03 CST 2022</div><div>There was an unexpected error (type=Bad Request, status=400).</div><div>receive invalid redirect request from peer 192.168.155.1</div></body></html>
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:464) ~[nacos-client-1.1.1.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:386) ~[nacos-client-1.1.1.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.registerService(NamingProxy.java:188) ~[nacos-client-1.1.1.jar:na]
	...........................

原因分析:

应该是nacos 注册时,需要找网卡的 ip地址,但是有多个. 而注册时轮询找的第一个网卡的ip地址.
我们查看nacos的集群配置文件cluster.conf也得到了验证,发现会多出来一条不属于自己配置的ip端口。
在这里插入图片描述


解决方案:

  1. 先禁用 虚拟机的网卡
    打开“网络和Internet设置”–更改适配器选项,点击右键禁用
    在这里插入图片描述
  2. 修改每个nacos-server\conf 的cluster.conf,将多出来的配置删除掉。
  3. 删除每个nacos-server下的data文件夹
    在这里插入图片描述
  4. 重启nacos集群和微服务,访问localhost:9527,即可发现服务已注册进nacos集群
    在这里插入图片描述
    在这里插入图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_50932526/article/details/128065403

Linux搭建Nginx负载均衡Nacos集群-爱代码爱编程

Linux搭建Nginx负载均衡Nacos集群 1、下载安装nginx 官网 下载地址 nginx有三个版本,开放版、稳定版、历史版本,这里安装稳定版为例。 在安装nginx之前要先安装nginx相关的依赖包,通过命令一键安装即可 yum -y install gcc zlib zlib-devel pcre-devel openssl o

docker-compose搭建nacos集群+nginx负载均衡-爱代码爱编程

项目地址:https://gitee.com/little_wear/docker-compose-nacos-nginx 文件结构 . ├── conf │ └── nginx.conf #nginx的配置 ├── data #容器数据卷目录 │ ├── cluster-logs │ ├── init.d │ └── my

nginx+nacos集群环境搭建-爱代码爱编程

nginx(集群)+ nacos(集群)搭建 安装步骤1、nginx安装2、nacos安装3、nginx集群配置4、nacos集群配置5、配置nginx负载均衡 安装步骤 配置信息:3台nginx+3台nacos+1mysql服务 1、nginx安装 请移步nginx安装教程 2、nacos安装 # 下载好的nacos放到/usr/l

Nacos集群搭建(MYSQL+Nacos+Nginx)(超详细!!!)-爱代码爱编程

Nacos集群搭建 MYSQL+Nacos+Nginx 前言:一.搭建Nacos集群二.利用Nginx实现Nacos集群高可用1.安装Nginx2.修改配置文件3.测试 前言: 由于Nacos是服务注册中心和统一配置中心,生产开发中为了保障高可用性,得搭建Nacos集群 集群解决问题:1.并发访问压力2.单节点故障问题 一.搭建

Nacos集群搭建(使用3个本地nacos节点+1个mysql数据库模拟搭建集群+nginx完成负载均衡和反向代理)-爱代码爱编程

1.搭建数据库,初始化数据库表结构 新建一个数据库,命名为nacos,而后导入下面的SQL: CREATE TABLE `config_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'da

nacos集群搭建并配置nginx负载均衡-爱代码爱编程

一、配置 nacos 集群 注意:需要先配置好 nacos 连接本地数据库 1、拷贝三份 nacos 2、修改配置文件(application.properties) 修改启动端口: nacos1:8845nacos2:8847nacos3:88493、创建cluster.conf文件 在每个nacos的conf目录各存放一份 127

Linux环境搭建Nacos集群+Ngnix负载均衡-爱代码爱编程

Linux环境搭建Nacos集群 1.环境准备 ​ 需要1个nginx+3个nacos注册中心+1个mysql ​ Linux 64bit OS Linux/Unix/Mac //推荐使用Linux系统 ​ 需要三个或三个以上的Nacos才能构成集群。 本次搭建使用的是nacos-server-1.4.2.tar.gz , 下载地址 https

(1)nacos搭建集群模式,利用nginx做反向代理和负载均衡-爱代码爱编程

搭建nacos的集群模式 为什么要搭建集群的模式:因为当一个nacos服务部署在A服务器中,如果这台服务器挂了,那么就会出现各个模块都无法访问的了,所以将nacos部署在多个服务器中,搭建一个集群的模式,这样可以预防一台服务器挂了,所以的服务都会收到影响。 图解:用nginx做负载均衡,同时访问三个nacos服务,然后同时操作一个数据库,数据库也可以

Nacos Nginx 模拟集群搭建案例-爱代码爱编程

目录 一、下载nacos,并复制多份修改文件名 二、修改配置文件 (1)修改conf/application.properties的配置: (2)将conf/cluster.conf.example改为cluster.conf,添加节点配置 (3)创建mysql数据库,sql文件位置: conf/nacos-mysql.sql ​(4)修改 b

使用Nacos搭建集群并过Nginx反向代理实现负载均衡步骤-爱代码爱编程

使用Nacos搭建集群如图所示: Nacos节点需要实现数据共享,所以每个节点都访问MySQL集群, MySQL集群通过MySQL主从复制实现读写分离; 请求发送到Nacos集群之前通过Nginx负载均衡分发到不同的Nacos节点。 注:这里通过Nacos端口号的不同区分不同的Nacos节点(实际生产环境应为不同IP地址),MySQL集群暂未搭建,使用单

nacos集群负载均衡搭建演示_无暇浅安时光的博客-爱代码爱编程

实现nacos集群负载均衡:1台nginx+3台nacos+1个mysql 前提:linux下java环境配置 java环境配置如下: JAVA_HOME=/software/jdk1.8.0_333 CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/l

docker搭建nacos集群 nginx实现负载均衡_sora33的博客-爱代码爱编程

本文使用三台线上服务器,基于docker搭建nacos高可用,并通过nginx来实现负载均衡。多台服务器之间互相注册,一台DOWN,自动切换节点 **文章结构**1.安装docker2.拉取nacos镜像3.创建nacos的持久化数据库4.修改nacos配置文件5.编写nacos安装脚本6.安装nginx7.使用nginx做负载均衡 文章结构

nginx代理转发nacos集群:基于nacos2.0.3版本_北冥牧之的博客-爱代码爱编程

目录 前言 一、源码包下载 1.1.Nginx下载 1.2.PCRE下载 1.3.Zlib下载 1.4.OpenSSL下载  二、安装 2.1.PCRE安装 2.2.Zlib安装  2.3.OpenSSL安装 2.4.Nginx安装  2.5.Nginx常用命令 三、配置部署 3.1.nacos1.x和2.x的差异 3.2.兼