ingress-nginx 中 Rewrite 的使用

由於 nginx 的優秀性能表現,所以很多企業在 Kubernetes 中選擇 Ingress Controller 的時候依然會選擇基於 nginx 的 ingress-nginx,前面文章中我們更多的是介紹更加雲原生配置更加靈活的 Traefik,特別是 Traefik 2.0 版本新增中間件概念以後,在配置上就更加方便了,各種需求都可以通過中間件來實現,對於 ingress-nginx 來說配置就稍微麻煩一點,一些複雜的需求需要通過 Ingress 的 annotation 來實現,比如我們現在需要實現一個 url rewrite 的功能,簡單來說就是我們之前的應用在 todo.qikqiak.com 下面,現在我們需要通過 todo.qikqiak.com/app/ 來進行訪問。

本次測試使用的集群為 Kubernetes v1.16.2,ingess-nginx 鏡像版本為 0.26.1

最原始的 Ingress 對象如下所示:

<code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fe
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: todo.qikqiak.com
http:
paths:
- backend:
serviceName: fe
servicePort: 3000
path: //<code>

就是一個很常規的 Ingress 對象,部署該對象後,將域名解析後就可以正常訪問到應用:


分享到:


相關文章: