Điểm:0

kubernetes xâm nhập đường dẫn thay thế

lá cờ cn

Tôi có hai dịch vụ api phụ trợ:

  1. dịch vụ api-v1
  2. dịch vụ api-v2

Cả hai đều phản hồi trên đường dẫn "/api/"

Tôi có cấu hình này chạy tốt dưới dạng thiết lập docker-compose trong đó dịch vụ nginx đóng vai trò là proxy với tệp cấu hình sau

/etc/nginx/conf.d/default.conf:

người phục vụ {
    ...

    vị trí /apiv1/ {
        proxy_pass http://api-service-v1/api/;
    }
    ...

    vị trí /apiv2/ {
        proxy_pass http://api-service-v2/api/;
    }
    ...
}

Bây giờ tôi muốn triển khai thiết lập cho cụm k8s. Tôi bị mắc kẹt với cấu hình xâm nhập. xâm nhập.yml:

apiVersion: mạng.k8s.io/v1
loại: Xâm nhập
metadata:
  tên: dev-ingress
  chú thích:
    nginx.ingress.kubernetes.io/use-regex: "true"

thông số kỹ thuật:
  quy tắc:
    - máy chủ: demo.com
      http:
        con đường:
          - pathType: Tiền tố
            con đường: "/"
            phụ trợ:
              dịch vụ:
                tên: dịch vụ frontend
                Hải cảng:
                  số: 80

          - pathType: Tiền tố
            đường dẫn: "/apiv1/"
            phụ trợ:
              dịch vụ:
                tên: api-service-v1
                Hải cảng:
                  số: 80

          - pathType: Tiền tố
            đường dẫn: "/apiv2/"
            phụ trợ:
              dịch vụ:
                tên: api-service-v2
                Hải cảng:
                  số: 80

Đường dẫn "/" hoạt động tốt. Nhưng các đường dẫn "/apiv1/" và "/apiv2/" không hoạt động.

Hãy giúp tôi.

Cảm ơn!

Điểm:0
lá cờ us

Lối vào sẽ chỉ chuyển tiếp toàn bộ đường dẫn đến dịch vụ.

Ví dụ. của bạn dịch vụ api-v1 sẽ bị tấn công với các url như https://yourhost/apiv1/asdfq

Nếu bạn muốn lối vào sửa đổi đường dẫn được sử dụng để truy cập dịch vụ, bạn cần yêu cầu nó viết lại, như được mô tả trong: https://kubernetes.github.io/ingress-nginx/examples/rewrite/

Biến đổi con đường của đường dẫn dịch vụ api đến /apiv1(/|$)(.*)/apiv2(/|$)(.*) tương ứng.

Sau đó thêm nginx.ingress.kubernetes.io/rewrite-target: /api$1$2 chú thích.

Thật không may, điều đó cũng có nghĩa là / của bạn cần phải ở trong một lối vào khác, nếu không, các yêu cầu về giao diện người dùng cũng sẽ được viết lại thành hit /api/ trong dịch vụ giao diện người dùng của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.