Điểm:0

Cách lấy giá trị của biến trong split_clients NGINX

lá cờ pl

Tôi đang sử dụng [split_client] và nó hoạt động hoàn hảo trong hầu hết các trường hợp.

Tham khảo: https://nginx.org/en/docs/http/ngx_http_split_clients_module.html

split_clients trả về một chuỗi theo nghĩa đen để sử dụng thêm.

Nhưng bây giờ, tôi cần chuỗi trả về chứa một biến, như thế này:

http bối cảnh:

split_clients "${remote_addr}${http_user_agent}${date_gmt}" $my_variable {
    20% https://example.com/fixed_string/another_fixed_string;
    * https://example.com/$1/another_fixed_string;
}

người phục vụ bối cảnh:

vị trí ~ ^/abc/(.*) {
   viết lại chuyển hướng ^/abc/(.*) $my_variable;
}

Khi tôi ghé thăm https://example.org/abc/something, nó chuyển hướng đến https://example.com/$1/another_fixed_string với $1 là một chuỗi theo nghĩa đen trong URL.

kỳ vọng của tôi là $1 hoạt động như một biến, và giá trị của nó là thứ gì đó, sau đó chuyển hướng đến https://example.com/something/another_fixed_string

Làm thế nào để thực hiện nó?

lá cờ pl
Có cách nào để thay thế trong chuỗi, đại loại như `str_replace("$1", $1, $my_variable)` không?. Điều này sẽ hoạt động nếu nó khả thi.
Gerard H. Pille avatar
lá cờ in
Kết hợp split_clients với bản đồ?
lá cờ pl
@GerardH.Pille cảm ơn bạn, nó hoạt động. Bạn tiết kiệm ngày của tôi!
Điểm:0
lá cờ pl

Như @Gerard H. Pille đã đề xuất, sử dụng bản đồ có thể giải quyết vấn đề này.

http bối cảnh:

split_clients "${remote_addr}${http_user_agent}${date_gmt}" $my_variable {
    20%0;
    *1;
}

bản đồ $my_variable $my_url {
   #default bạn cũng có thể đặt giá trị mặc định

   0 https://example.com/fixed_string/another_fixed_string;
   1 https://example.com/$1/another_fixed_string;
}

người phục vụ bối cảnh:

vị trí ~ ^/abc/(.*) {
   viết lại ^/abc/(.*) $my_url chuyển hướng;
}

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