问题描述
我有一个应用服务计划,其中包含 3 个应用服务,所有 3 个应用都有专用端点。 前端调用--> 中间件调用--> 后端
从中间件到后端的调用失败,我在中间件的应用程序日志或日志流中没有看到任何错误,只有一条日志消息表明调用了后端。
当我直接从浏览器访问后端 url 时,我得到了响应。
例如https://backend.azurewebsites.net/hello
回复“你好”
当我尝试 tcpping backend.azurewebsites.net:443
时,从中间件的 kudu bash 我得到
错误的目标地址
从中间件到后端的 curl 命令失败,出现 403 Forbidden Error
curl https://backend.azurewebsites.net/hello
--> 403 禁止错误。
中间件是 Linux 上的 Docker 容器, 后端运行时堆栈 Java 8、Java Web 服务器堆栈 - Linux 上的 JAVA SE(嵌入式 Web 服务器)
任何关于我在这里遗漏的指导都会有很大帮助。
解决方法
私有端点仅用于传入 Web 应用程序的流。
传出流不会使用这个私有端点, 可以使用 VNET 集成功能通过 VNET 路由来自应用服务的传出流。
请参考链接
https://docs.microsoft.com/en-us/azure/app-service/networking/private-endpoint