Điểm:0

Định tuyến dựa trên môi trường NGINX

lá cờ vn

Tôi có một ứng dụng chạy trong nhiều cụm K8; Giả sử có một dịch vụ giao diện người dùng và hai dịch vụ phụ trợ.

Tôi sử dụng proxy NGINX cho các yêu cầu từ giao diện người dùng đến các dịch vụ phụ trợ. Phiên bản NGINX thông thường, không phải NGINX +. Đây là nginx.conf:

người phục vụ {
    ....
    set $back1 "<tên máy k8s cho dịch vụ backend1>";
    set $back2 "<tên máy k8s cho dịch vụ backend2>";

    vị trí /back1 {
        viết lại ^/back1/(.*)$ /$1 break;
        proxy_pass http://$back1;
    }
    
    <và tương tự cho dịch vụ phụ trợ 2>
}

Vì vậy, về cơ bản, điều xảy ra là trong ứng dụng giao diện người dùng của tôi, tôi đặt địa chỉ dịch vụ phụ trợ thành máy chủ cục bộ/back1máy chủ cục bộ/back2, các yêu cầu nhấn NGINX sẽ loại bỏ những yêu cầu đó trở lại1trở lại2 tiền tố và gọi bất kỳ điểm cuối nào tôi chỉ định sau trong các dịch vụ phụ trợ thực tế trong K8s.

Vì tôi có nhiều cụm K8, tên máy chủ của các dịch vụ phụ trợ khác nhau và tôi cần tính đến điều đó trong conf NGINX của mình.

Câu hỏi là: Có cách nào để NGINX phân biệt giữa các cụm K8 của tôi không? Có lẽ tôi có thể chuyển một biến môi trường tới vùng chứa đang chạy dịch vụ giao diện người dùng của mình và tạo một nếu câu lệnh trong nginx.conf. Cái gì đó như:

người phục vụ {
    if (${env} = "cluster1") {
        đặt $back1 = "<tên máy chủ cụm1>"
    }
    nếu (${env} = "cluster2") {
        đặt $back1 = "<tên máy chủ cụm2>"
    }
}

Hoặc nếu tôi có thể thực thi lệnh shell trong nginx conf để lấy tên máy chủ và viết các khối if tương tự.

Tôi sẽ đánh giá cao bất kỳ sự giúp đỡ về vấn đề này!

Điểm:0
lá cờ vn

Tôi đã đi theo một lộ trình khác - thông qua các mẫu, biến môi trường và tiện ích envsubst đang vận chuyển trong các hình ảnh docker nginx mới nhất.

Trong mẫu:

đặt $upstream_back1 "${BACK1}";
đặt $upstream_back2 "${BACK2}";

Trong Dockerfile

CHẠY envsubst < yourtemplate > /etc/nginx/nginx.conf

Đă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.