trafik -通过新的子域暴露次要内部端口



我编写了一个。net API应用程序,监听两个端口:

  • 5000常规HTTP请求(HTTP1)
  • 5001 for gRPC (http)

我通过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"

现在,我的问题是-如果我的容器暴露5000和5001,我如何设置一个新的子域,以便我可以允许常规的web流量以及gRPC?

:

HTTP1 https://api.example.com -> container:5000
HTTP2 https://api-grpc.example.com -> container:5001
如果有更好的方法达到同样的效果,请让我知道。由于严格的HTTP2要求,我不能让gRPC侦听与web流量相同的端口,我宁愿不使用gRPC-web
labels:
- traefik.http.routers.http-router.rule=Host(`api.example.com`)
- traefik.http.routers.http-router.service=http-service
- traefik.http.services.http-service.loadbalancer.server.port=5000
- traefik.http.routers.grpc-router.rule=Host(`api-grpc.example.com`)
- traefik.http.routers.grpc-router.service=grpc-service
- traefik.http.services.grpc-service.loadbalancer.server.port=5001
- traefik.http.services.grpc-service.loadbalancer.server.scheme=h2c

参考:为每个容器指定多个路由器和服务

相关内容

  • 没有找到相关文章

最新更新