这是我报错的截图。
worker_processes 1;
events {
worker_connections 1024;
}
stream{
upstream nacoscluster{
#注意以下端口均按端口号+1000的偏移量
#例如我本来的端口号是8848,这里就要写9848
server 192.168.129.128:9848;
server 192.168.129.128:9868;
server 192.168.129.128:9888;
}
server{
listen 4888;
proxy_pass nacoscluster;
}
}
这是我的nginx配置全部内容,已经是改好的(注意,Nginx1.9以上版本,默认支持TCP代理了,不用额外安装stream模块)配置文件,这里通过官网来解释一下偏移量的问题:
默认的话如果微服务用http2来连接就会被Nginx断开
也就是说你需要配置成TCP转发,正如我上述Nginx配置所述,端口号本来是8848,那在Nginx配置文件中需要将其+1000,也就是8848+1000=9848,但是这并没有万事大吉。
微服务启动时,按照我上述的端口号4888进行配置还会报错
但是,当我把端口号改为3888,你们就会发现
它成功启动了,
因为我们在nginx配置的代理tcp端口为4888,这个端口可以看成是grpc的端口,因为grpc的端口 = nacos主端口 + 1000,因此我们套这个公式就可以得出,nacos的主端口为 = 4888 - 1000 = 3888,而我们微服务项目配置nacos端口,其实配置是主端口,因此实际上我们配置里的最终IP地址应该是192.168.129.128:3888,而不是192.168.129.128:4888
至此,整个故障就排除掉了
本文大部分知识都摘抄于如下链接博客,这个问题实在是太痛苦了,经我本人验证,此方法完全可行!该博客内讲的十分详细,有更深一步需求可移步到如下链接并访问。https://www.jianshu.com/p/96ae1421e3ddhttps://www.jianshu.com/p/96ae1421e3dd