Header Ads Widget

Ticker

6/recent/ticker-posts

Hướng dẫn redirect trong nginx-ingress kubernetes và rewrite có điều kiện

Keywords: How to redirect and rewrite conditional url in nginx-ingress on kubernetes

Redirect thì không còn xa lạ gì với anh em IT rồi đúng không, hiểu nôm na thì nó chỉnh là khi bạn truy cập đến một đường link nào đó thì nó sẻ đẩy đến một đường link khác, ví dụ nếu như bạn muốn user truy cập www.itblognote.com nhưng mõi lần thói quen của user thường là sẻ sử dụng lệnh itblognote.com để truy cập, vậy thì mình sẻ config để redirect khi user gõ itblognote.com trên thanh URL thì nó sẻ chuyển đến trang www.itblognote.com đó chính là công dụng của redirect, ok mình sẻ không nói nhiều về nó nữa vào vấn đề chính luôn nào

Việc config redirect trên các apache2 hay là nginx, các web server bình thường thì nó đã không còn xa lạ gì nữa rồi, nhưng cái mình muốn hướng dẫn các bạn ở đây chính là sử dụng redirect cho nginx ingress một Ingress Controller về web server của k8s

Để thực hiện điều này chúng ta cần phải chỉnh sửa ở phía ingress của service trên k8s, ví dụ ở đây mình đang chỉnh sửa một ingress của một services bất kì trên k8s của mình, tại trường annotations của ingess chúng ta thêm những giá trị sau

annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
Các bạn có thể thấy mình đã thêm phần www thành true để nó redirect đến đó, ngoài ra bạn không chỉ có thể redirect đến www mà các bạn còn có thể thực hiện đến bất kì link nào khác với config của riêng mình, ở đây mình sẻ có ví dụ như sau, mình sẻ thực hiện truy cập đến link cá nhân của mình với path là /chaongaymoi thì nó sẻ trỏ đến trang web khác với link mà mình mong muốn
nginx.ingress.kubernetes.io/configuration-snippet: |
      rewrite /chaongaymoi https://itblognote.com$uri permanent;
Như các bạn cũng thấy khi mình truy cập link ingress của mình với path chaongaymoi thì nó sẻ redirect đến link itblognote.com/chaongaymoi đại loại là như vậy
Sau khi đã tổng hợp 2 vấn đề trên chúng ta sẻ được một config ingress hoàn chỉnh như sau
ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/proxy-body-size: "10m"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
    nginx.ingress.kubernetes.io/configuration-snippet: |
      rewrite /chaongaymoi https://itblognote.com$uri permanent;
    nginx.ingress.kubernetes.io/server-snippet: |
      location /sitemaps/ {
        proxy_pass http://sitemap.itblognote.com/sitemaps/;
      }

  hosts:
    - host: www.example.com
      paths:
        - /
  tls:
    - secretName: www-example-com-tls
      hosts:
        - example.com
        - www.example.com
Các bạn có thể xem của mình và tham khảo nhé.

Post a Comment

0 Comments