先了解:127.0.0.1永远代表当前项目正在运行的机器,并非固定设备;端口隧道仅存在于本地电脑,云服务器无隧道转发能力.
一、开发环境 dev(程序运行在本地电脑,用隧道自定义端口访问服务器里的原生端口)
本地开启端口隧道做转发映射关系:
例:
本地隧道自定义端口8880↔ 云服务器 RabbitMQ 原生端口5672
本地隧道自定义端口8888↔ 云服务器 Nacos 自定义端口10020
nacos: address: 127.0.0.1:8888 rabbitmq: address: amqp://xxx:xxx@127.0.0.1:8880/vhost- 此处
127.0.0.1指代自己的电脑; - 程序访问本机隧道端口,由隧道加密转发至云服务器真实中间件;
- 优势:无需在服务器开放 5672、10020 公网端口,安全性高、网络连接稳定;
- 使用前提:必须提前启动隧道工具,否则直接抛出连接失败异常
二、生产环境 prod(程序部署在云服务器)
项目、Nacos、RabbitMQ 部署在同一台云服务器,服务器不存在本地隧道工具,只能直连中间件原生端口
nacos: address: 127.0.0.1:10020 rabbitmq: address: amqp://xxx:xxx@127.0.0.1:5672/vhost- 此处
127.0.0.1指代云服务器本身,不再是本地电脑; - 端口要求使用原生端口:RabbitMQ 默认端口 5672,Nacos 自定义端口 10020;
- 禁止填写
127.0.0.1:8889:服务器无隧道转发,8889 端口无服务监听,直接连接拒绝; - 禁止填写公网 IP:本机服务走公网访问内部中间件会增加路由损耗,性能大幅下降,不符合企业线上规范。