gpt4 book ai didi

asp.net-core - 如何确保我在 EKS 中运行的 .NET Core 服务可以找到 https 端口?

转载 作者:行者123 更新时间:2023-12-04 17:13:36 27 4
gpt4 key购买 nike

我已经使用 Microsoft 登录创建了一个 .NET Core 微服务,如 here 所述.在本地或本地 Docker 容器中运行它时,一切都按预期工作。但是,在 EKS 中运行时,我在日志中收到一条烦人的警告消息:

Failed to determine the https port for redirect.


此警告显示在下面显示的图片中,这也表明我还检查了使用了哪些端口号(http 仅 80)。如果 netstat -tulp 我会很好会显示 https 的端口号,因为这样我就可以在应用程序设置( as explained by the Microsoft docs )中设置它并直接解析它。
Microsoft 文档清楚地说明了何时该做什么

The middleware logs the warning "Failed to determine the https portfor redirect."


但是这些并没有说明如果在所有环境中一切正常,除了在 EKS 中运行应用程序时,该怎么做。或许,我应该在我的 EKS/Kubernetes 配置中做一些事情,但我不知道该怎么做。
这是服务文件:
enter image description here
这是日志中显示的警告消息。
enter image description here
如何解决警告消息?

最佳答案

我可以看到您正在使用 app.UseHsts();Startup.cs将强制客户端使用 https 的文件。见文档here .
但基本在您的日志 Now listening on: http://[::]:80 ,您的服务仅监听 http 而不是 https。
也许你可以试试这个

  • 只需删除代码 app.UseHsts();并且只使用http。
  • 通过配置启用 https spec.template.spec.containers.env在 k8s deployment.yaml 中。您的容器中将需要一个服务器 tls 证书。

  • apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: webapi
    labels:
    app: weather-forecast
    spec:
    replicas: 1
    selector:
    matchLabels:
    service: webapi
    template:
    metadata:
    labels:
    app: weather-forecast
    service: webapi
    spec:
    containers:
    - name: webapi
    image: exploredocker.azurecr.io/webapi:v1
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
    protocol: TCP
    - containerPort: 443
    protocol: TCP
    env:
    - name: ASPNETCORE_URLS
    value: https://+:443;http://+:80
    - name: ASPNETCORE_Kestrel__Certificates__Default__Path
    value: /https/server_cert.pfx
    - name: ASPNETCORE_Kestrel__Certificates__Default__Password
    value: password

    关于asp.net-core - 如何确保我在 EKS 中运行的 .NET Core 服务可以找到 https 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69045532/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com