在這里,我在 minikube 上運行 kubernetes,它有 2 個服務backend和frontend. 我已經為 minikube 安裝了入口插件。
每當前端請求路徑 url 時,我想重寫/users/{user-id}它是否backend動態地使用相同的 url 提供服務。
假設請求是/users重寫到backend服務/users,/users/1它去/users/1。
我試圖閱讀nginx 手冊發現一些我不明白的特殊表達。
這是我的入口配置。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-be
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /users/$1
spec:
ingressClassName: nginx
rules:
- host: backend
http:
paths:
- path: /users/(.*)
pathType: Prefix
backend:
service:
name: backend
port:
number: 5000
當請求是時我的配置似乎很好,但當請求是/users/{users-id}時/users,我的入口不會將我重定向到backend服務中的“/用戶”。
當我用 curl 測驗時,這是輸出。
curl http://backend/users/3
{"id":3,"name":"Sofia","email":"[email protected]","gender":"Female","createdAt":"2022-04-05T15:46:46.000Z","updatedAt":"2022-04-05T15:46:46.000Z"}%
curl http://backend/users
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
我在這里想念什么?
預先感謝您的幫助!
uj5u.com熱心網友回復:
更新!
評論中的安德烈亞斯建議我使用/users/它并且它有效!
然后我決定修改我的入口配置。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-be
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /users/$2
spec:
ingressClassName: nginx
rules:
- host: backend
http:
paths:
- path: /users(/|$)(.*)
pathType: Prefix
backend:
service:
name: backend
port:
number: 5000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/505152.html
標籤:nginx Kubernetes Kubernetes入口 nginx入口
