使用 ALB Ingress Controller 将非 www 重定向到 www

2023-12-19

我正在尝试重定向non www请求www。我检查了这里的注释https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/ https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/但找不到特定于非 www 到 www 的重定向。

我已经有一个http to https重定向设置并且它正在工作。

下面是我的入口资源清单文件。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: eks-learning-ingress
  namespace: production
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/certificate-arn: ard878ef678df
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
    alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
  labels:
    app: eks-learning-ingress
spec:
  rules:
  - host: www.myhost.in
    http:
      paths:
        - path: /*
          backend:
            serviceName: ssl-redirect
            servicePort: use-annotation
        - path: /*
          backend:
            serviceName: eks-learning-service
            servicePort: 80

任何帮助都会很棒。谢谢。


有 2 种方法可以进行非 www 到 www 的重定向, 1. 使用alb.ingress.kubernetes.io/actions, 2. alb.ingress.kubernetes.io/conditions.


alb.ingress.kubernetes.io/actions https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/#actions

alb.ingress.kubernetes.io/actions.${action-name} 提供了一种方法 在侦听器上配置自定义操作,例如重定向 行动。

注释中的操作名称必须与注释中的服务名称匹配 入口规则,servicePort 必须是 use-annotation。

我们还需要一个注释,它告诉 ALB 如何配置重定向:

alb.ingress.kubernetes.io/actions.redirect-to-www: >
    {"Type":"redirect","RedirectConfig":{"Host":"www.myhost.in","Port":"443","Protocol":"HTTPS","StatusCode":"HTTP_302"}}

还有一项主机规则来捕获您的请求域myhost.in并重定向到www.myhost.in

- host: myhost.in
  http:
    paths:
      - path: /*
        backend:
          serviceName: redirect-to-www
          servicePort: use-annotation

alb.ingress.kubernetes.io/conditions https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/#conditions

alb.ingress.kubernetes.io/conditions.${conditions-name} 提供 除原始路由条件外还指定路由条件的方法 Ingress 规范上的主机/路径条件。

注释中的条件名称必须与中的服务名称匹配 入口规则。它可以是真实的 serviceName 或 当 servicePort 为“use-annotation”时,基于注释的操作名称。

除了上面我们添加的注解之外,我们继续在注解中添加条件来过滤请求,但是不需要上面的host规则。

alb.ingress.kubernetes.io/actions.redirect-to-www: >
    {"Type":"redirect","RedirectConfig":{"Host":"www.myhost.in","Port":"443","Protocol":"HTTPS","StatusCode":"HTTP_302"}}
alb.ingress.kubernetes.io/conditions.redirect-to-www: >
    [{"Field":"host-header","HostHeaderConfig":{"Values":["myhost.in"]}}]

我们修改您当前必须实​​现的重定向的现有主机规则。

- host: www.myhost.in
    http:
      paths:
        - path: /*
          backend:
            serviceName: redirect-to-www
            servicePort: use-annotation
        - path: /*
          backend:
            serviceName: ssl-redirect
            servicePort: use-annotation
        - path: /*
          backend:
            serviceName: eks-learning-service
            servicePort: 80

更新为networking.k8s.io/v1

- host: www.myhost.in
  http:
    paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: redirect-to-www
            port:
              name: use-annotation
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ALB Ingress Controller 将非 www 重定向到 www 的相关文章

  • CORS 击败 AWS LAMBDA :(

    我读了很多关于 CORS Lambda AWS API Gateway 配置的文章 包括 AWS 的设置帮助 http docs aws amazon com apigateway latest developerguide how to
  • 尝试安装 AWS CLI,卡在一个步骤上

    我正在尝试为 mac 命令行安装 aws 我想我不明白我需要做什么 我在终端上安装了带有 wget 的 aws 捆绑包 解压后它完成了所有操作 但是当我需要配置我的凭据时 什么也没有出现把aws配置 以下是说明 http docs aws
  • 禁用 Kubernetes NGINX 入口的 SSL 重定向

    默认情况下 在 Kubernetes NGINX 入口中启用 SSL 重定向 如何禁用此功能 目前的实施如下 apiVersion extensions v1beta1 kind Ingress metadata name project
  • 无法在 minikube 和 haproxy loadBalancer 中导出 IP

    我对 kubernetes 比较陌生 我已经在 virtualbox VM ubuntu 19 10 中安装了 minikube v1 5 2 我想创建一个可以从主机和访客访问的 Web 服务器 但是 我无法访问它或公开 IP 你可以帮帮我
  • 如何对 nginx ingress 中的特定 HTTP 方法进行基本身份验证?

    我可以使用基本身份验证创建入口 我遵循 kubernetes ingress nginx 中的模板 apiVersion extensions v1beta1 kind Ingress metadata name ingress with
  • 我的 s3 存储桶如何使用 nginx 在不同文件夹中托管多个网站?

    我在 Amazon 上有一个 s3 Cloudfront 解决方案 我想在存储桶内的不同文件夹中托管不同的网站 并通过以下两种方式之一访问它们 子域 gt mywebsite1 mydomain com 或者 路径 gt www mydom
  • 如何在 Istio 上禁用 mtls?

    我在使用 Istio 连接 Kubernetes 上的两个服务时遇到问题 我的服务向 elasticsearch 发出 POST 请求 2020 11 18T21 51 53 758079131Z org elasticsearch cli
  • rancher rke up etcd 主机运行状况检查远程错误:tls:错误证书

    rke debug up config cluster yml etcd 主机上的运行状况检查失败并出现错误 DEBU 0281 etcd 无法检查 etcd 主机 x x x x 的运行状况 无法获取主机 x x x x 的 health
  • AWS CloudWatchLog 限制

    我正在尝试找到集中式解决方案来将我的应用程序日志记录从数据库 RDS 中移出 我本想使用 CloudWatchLog 但注意到 PutLogEvents 请求有限制 PutLogEvents 请求的最大速率为每秒 5 个请求 每个日志流 即
  • 无法在 xcode 8 beta 6 上编译 AWS CustomIdentityProvider

    我在 iOS 应用程序中使用 Amazon Cognito 和 Facebook 登录 直到 beta 5 为止此代码从这个SO线程 https stackoverflow com questions 37597388 aws cognit
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库
  • 使用 Python 从 AWS S3 下载文件

    我尝试使用以下代码将文件从 Amazon S3 存储桶下载到本地 但收到错误消息 无法找到凭证 下面给出的是我编写的代码 from boto3 session import Session import boto3 ACCESS KEY A
  • 无法正确停止我的 AWS EC2 实例

    作为 AWS 新手 我有一个支持我的 Elastic Beanstalk 应用程序的 t2 micro EC2 实例 它是在我将 WAR 文件部署到 Elastic Beanstalk 时创建的 我的 EB 应用程序不需要每天 24 小时运
  • AWS EC2 上的 Wordpress - 分配弹性 IP 后损坏

    所以 我安装了 WordPress 并且运行得很好 我可以通过从实例获得的公共 DNS 访问该站点和 wp admin 但是 一旦我创建了弹性 IP 并将其与实例关联 我就无法再访问 wp admin 并且主页样式表和 JavaScript
  • 如何使用 lambda 和 python 在 s3 上压缩文件

    我需要存档 s3 上存在的多个文件 然后将存档上传回 s3 我正在尝试使用 lambda 和 python 由于某些文件超过 500MB 因此无法在 tmp 中下载 有什么办法可以将文件一一流式传输并将其存档吗 不写入磁盘 流式传输至 S3
  • 为什么 dagger 被认为比 Guice 更适合 AWS lambda 实现?

    我知道 dagger 通过生成代码在编译时创建注入 因此它的性能比 Guice 更好 Guice 在运行时执行注入 但特别是对于 lambda 的情况 我看到在多个地方都提到 Dagger 是首选 是因为冷启动问题吗 由于lambda的冷启
  • AWS EC2 自动缩放没有持续警报?

    我为自动缩放组创建了以下两个警报 Scale up如果 CPUUtilization gt 75 更改为状态 则有 1 个实例ALARM Scale down如果 CPUUtilization gt 30 更改为状态 则有 1 个实例OK
  • 如何将 API Gateway 与 Cognito 联合身份和 Cognito 用户池集成

    在AWS中 我构建了一个调用Lambda函数的API网关 用户通过登录与 Cognito 联合身份池关联的 Cognito 用户池来获得访问权限 并且关联的 IAM 角色包含 API 调用权限 API网关方法是POST请求 如果我使用用户池
  • 如何在 pod 之间或 kubernetes 集群中的节点之间复制文件?

    在 kubernetes 集群中可以这样做吗 我发现的所有示例都是从本地磁盘复制到 Pod 反之亦然 或者是从一个节点复制到另一个节点的唯一选项 例如通过 SSH SCP 或使用其他实用程序 无法进行集群到集群的复制 你需要使用kubect
  • 检查 Kubernetes 资源 CronJob 的日志

    我创建了一个CronJob https kubernetes io docs concepts workloads controllers cron jobs Kubernetes 中的资源 我想检查日志以验证我的 cron 是否正在运行

随机推荐