Có vẻ như của bạn viết lại Mục tiêu là sai. Nhìn vào ví dụ chung này từ tài liệu:
apiVersion: mạng.k8s.io/v1
loại: Xâm nhập
metadata:
chú thích:
nginx.ingress.kubernetes.io/rewrite-target: /$2
tên: viết lại
không gian tên: mặc định
thông số kỹ thuật:
quy tắc:
- chủ nhà: rewrite.bar.com
http:
con đường:
- phụ trợ:
Tên dịch vụ: http-svc
cổng dịch vụ: 80
đường dẫn: /something(/|$)(.*)
Trong định nghĩa xâm nhập này, bất kỳ ký tự nào được ghi lại bởi (.*)
sẽ được chỉ định cho trình giữ chỗ $2
, mà sau đó được sử dụng như một tham số trong viết lại mục tiêu
chú thích.
Ví dụ: định nghĩa xâm nhập ở trên sẽ dẫn đến việc viết lại như sau:
viết lại.bar.com/something
viết lại thành viết lại.bar.com/
viết lại.bar.com/something/
viết lại thành viết lại.bar.com/
viết lại.bar.com/something/new
viết lại thành viết lại.bar.com/new
Trong trường hợp của bạn, nếu bạn cố gắng truy cập staging.my-domain.com/
, bạn được viết lại vào cùng một địa chỉ. Mọi thứ đều ổn. Nhưng bạn chỉ có thể viết lại địa chỉ này. Bạn nên thay đổi bảng kê khai của mình như thế này:
apiVersion: mạng.k8s.io/v1
loại: Xâm nhập
metadata:
chú thích:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: hướng tới internet
bên ngoài-dns.alpha.kubernetes.io/hostname: staging.my-domain.com
nginx.ingress.kubernetes.io/ssl-redirect: "sai"
nginx.ingress.kubernetes.io/force-ssl-redirect: "sai"
nginx.ingress.kubernetes.io/rewrite-target: /$1
tên: nlx-api
thông số kỹ thuật:
quy tắc:
- máy chủ: staging.my-domain.com
http:
con đường:
- con đường: /(.*)
pathType: Tiền tố
phụ trợ:
dịch vụ:
tên: our-api
Hải cảng:
số: 80
Trong tình huống này, bất kỳ ký tự nào được chụp bởi (.*)
sẽ được chỉ định cho trình giữ chỗ $1
(đây là nhóm chụp đầu tiên), nhóm này sau đó được sử dụng làm tham số trong viết lại mục tiêu
chú thích.