Ingress Nginx域名重定向实践:Redirect配置与验证

来自AI助手的总结
通过Ingress注解实现nginx.redirect.com永久重定向到百度并验证访问效果
Ingress Nginx域名重定向实践:Redirect配置与验证

一、编写yaml文件

[root@k8s-master01 ~]#  vim redirect.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/permanent-redirect: https://www.baidu.com
    nginx.ingress.kubernetes.io/permanent-redirect-code: '308'
  name: nginx-redirect
  namespace: study-ingress
spec:
  ingressClassName: nginx
  rules:
  - host: nginx.redirect.com
    http:
      paths:
      - backend:
          service:
            name: nginx
            port:
              number: 80
        path: /
        pathType: ImplementationSpecific

上面参数说明:

  • 1.1 apiVersion: networking.k8s.io/v1: 指定使用的Kubernetes API版本,这里是Networking API的版本

  • 1.2 kind: Ingress: 表示这是一个Ingress资源对象

  • 1.3 metadata: 包含Ingress资源的元数据信息,包括名称和所属的命名空间。

  • annotations: 为Ingress资源添加注解,用于配置Ingress控制器的行为

  • nginx.ingress.kubernetes.io/permanent-redirect: https://www.baidu.com: 这个注解指示nginx-ingress控制器对所有请求进行永久重定向(308重定向)到https://www.baidu.com。所有到nginx.redirect.com的请求都会被永久重定向到https://www.baidu.com网站。
  • nginx.ingress.kubernetes.io/permanent-redirect-code: '308': 这个注解设置重定向的HTTP状态码为308。HTTP状态码308表示永久重定向,告诉客户端以后应该直接使用重定向的URI。这与常见的301和302重定向不同,301和302是临时重定向
  • name: nginx-redirect: Ingress资源的名称,这里命名为nginx-redirect
  • namespace: study-ingress: Ingress资源所属的命名空间,这里是study-ingress

  • 1.4 spec: 指定了Ingress资源的规则和配置

  • 1.5 rules: 定义了Ingress资源的规则列表。每个规则指定了如何将请求路由到后端服务

  • - host: nginx.test.com: 这个规则适用于主机名为nginx.test.com的请求。

  • http:: 表示这个规则适用于HTTP流量。
  • paths:: 定义了路径规则列表,允许将特定路径的请求转发到后端Service
  • backend: 路径规则的后端定义。指定了后端Service的信息。
  • service:: 后端Service的名称为nginx
  • port:: Service的端口号为80。
  • path: /: 定义了将匹配的请求转发到后端Service的路径。这里设置为根路径/,表示所有请求都会匹配。
  • pathType: ImplementationSpecific: 定义了路径类型,表示Kubernetes根据实现来选择路径类型。在这里设置为ImplementationSpecific,由Ingress控制器特定的实现来决定路径类型

二、创建新的Ingress

[root@k8s-master01 ~]#  kubectl create -f redirect.yaml

三、使用 curl 访问域名 nginx.redirect.com,观察到状态码为308

[root@k8s-master01 ~]# curl -H "Host:nginx.redirect.com" 192.168.1.35 -I
HTTP/1.1 308 Permanent Redirect
Date: Sun, 30 Jul 2023 10:42:00 GMT
Content-Type: text/html
Content-Length: 164
Connection: keep-alive
Location: https://www.baidu.com

上面curl参数说明:

  • -H选项用于添加自定义HTTP头部
  • -I选项表示仅请求HTTP头部信息而不返回主体内容。这是一个常用的用法,用于仅获取服务器的响应头部,而不下载完整的响应内容。

四、在win主机上修改hosts文件,文件路径为:C:\Windows\System32\drivers\etc\hosts

192.168.1.35 nginx.test.com nginx.redirect.com

五、打开浏览器,输入nginx.redirect.com即可跳转到百度页面

Ingress Nginx域名重定向Redirect

如果不生效,可能DNS解析未缓存。可参考以下步骤:

按Win键+R,打开cmd视图,执行ipconfig /flushdns命令进行刷新 DNS 解析缓存

C:\Users\ASUS>ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容