想想还是发出来给新手容易遇到的问题吧。
关于gateway+nacos遇到访问外部服务器C注册服务到nacos所在的服务器A
前提条件:都是云服务器,有公网IP。
服务分布情况大概如下:
nacos在:服务器A
gateway在: 服务器B
打比方是‘’test”业务服务在: 服务器C
今天中午准备注册一个test服务到nacos,结果B服务器内存不够,导致其他服务因内存不足导致自动关闭。所以打算部署在服务器C。部署上去后,通过接口访问发现一只报500错误,错误如下:
解决问题:
1.刚开始以为是跨域问题,发现浏览器上的预请求(type:preflight)是200,所以排除跨域问题。
2.看到gateway打在172.17.0.2上,说明这是在nacos所在服务器的局域网访问不到test服务,姑且认为这是原因所在。即:注册在nacos上的服务,gateway在nacos所在局域网中可以找test服务,但是连接不上test服务,所以报错500,而不是404.
第一反应是想到端口开放的问题,因为这个最好解决。就在test服务所在的服务器上打开test服务端口。发现没用。排除端口未开放问题。
其实这个问题很简单,就是需要在test服务的yml配置文件里加上: