Azure 容器应用中的网络代理
Azure 容器应用使用 Envoy 作为网络代理。 在 Azure 容器应用中会对网络请求进行代理,以实现以下功能:
允许应用缩放到零:直接调用应用程序需要使用正在运行的实例。 如果应用缩放到零,则直接请求将失败。 使用代理功能,Azure 容器应用可确保在调用应用时有正在运行的实例可用来解析请求。
实现负载均衡:当请求到达 Azure 容器应用时,应用负载均衡规则将请求分散到容器副本。
端口和路由
在容器应用中,Envoy 侦听以下端口来决定要将流量路由到哪个容器应用。
类型 | 请求 | IP 类型 | 端口号 | 内部端口号 |
---|---|---|---|---|
公用 | 端点 | 公用 | 80 |
8080 |
公用 | VNET | 公用 | 443 |
4430 |
内部 | 端点 | 群集 | 80 |
8081 |
内部 | VNET | 群集 | 443 |
8443 |
到达端口 80
和 443
的请求将在内部被路由到相应的内部端口,具体取决于请求类型。
安全性
- HTTP 请求会自动重定向到 HTTPS
- 可以通过在入口配置中将
allowInsecure
设置为true
来禁用此功能
- 可以通过在入口配置中将
- TLS 会在入口处终止
- 可以启用环境级网络加密,以对入口和应用之间以及不同应用之间的请求实现完整的端到端加密。
HTTP、gRPC 和 HTTP/2 全部遵循相同的体系结构模型。
超时
网络请求在四分钟后超时