【发布时间】:2021-10-23 21:43:39
【问题描述】:
我编写了一个侦听两个端口的 .NET API 应用程序:
- 5000 用于常规 HTTP 请求 (HTTP1)
- 5001 用于 gRPC (HTTP2)
我正在使用标签通过docker-compose 部署我的图像:
labels:
- "traefik.enable=true"
- "traefik.http.routers.myApi.rule=Host(`api.example.com`)"
- "traefik.http.routers.myApientrypoints=websecure"
- "traefik.http.routers.myApitls.certresolver=myresolver"
现在,我的问题是 - 如果我的容器 EXPOSE 为 5000 和 5001,我该如何设置一个新的子域,以便我可以允许常规网络流量以及 gRPC?
这样:
HTTP1 https://api.example.com -> container:5000
HTTP2 https://api-grpc.example.com -> container:5001
如果有更好的方法来达到同样的效果,请告诉我。由于严格的HTTP2 要求,我不能让gRPC 在与网络流量相同的端口上侦听,我宁愿不使用gRPC-web。
【问题讨论】:
标签: docker docker-compose traefik