我撰寫了一個偵聽兩個埠的 .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"
現在,我的問題是 - 如果我的容器暴露 5000 和 5001,我如何設定一個新的子域,以便我可以允許常規的 Web 流量以及gRPC?
以便:
HTTP1 https://api.example.com -> container:5000
HTTP2 https://api-grpc.example.com -> container:5001
如果有更好的方法來實作相同的目標,請告訴我。我不能有gRPC相同的埠的網路流量上進行偵聽,由于嚴格的HTTP2要求,我寧可不使用gRPC-web。
uj5u.com熱心網友回復:
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
參考:為每個容器指定多個路由器和服務
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334155.html
