vị trí nginx là gì ~ * và ~


15

Tôi đang cố gắng để hiểu nginx tốt hơn một chút và cố gắng hình thành một regex trong đó mọi url không khớp /api/postdataV1được chuyển đến một cụm máy chủ khác. Tôi tiếp tục nhìn thấy hai điều này trong các ví dụ mà không có lời giải thích

location ~ {some regex}

location ~* (some regex}

Câu hỏi đầu tiên của tôi là những thứ này là gì ~~*(tôi nghĩ ~chỉ có nghĩa là tôi đang chỉ định một regex?) Nhưng ~*sau đó thì sao?

Những gì tôi nghĩ những gì tôi muốn là điều này. Điều này sẽ đúng?

location ~ ^/api/postdataV1$ {
    #matches to this route to where I want
}

location / {
    #This will be everything except /api/postdataV1 I think
}

Điều này sẽ đúng? nhưng còn ~*... tôi không hiểu cái đó

cảm ơn, trưởng khoa


wiki luôn luôn đáng xem đầu tiên.
anh chàng từ đó đến

1
Tôi đã xem qua các tài liệu, nhưng chỉ không tìm thấy các liên kết phù hợp và kết thúc trên trang tài liệu cho "vị trí" thực sự cần có thông tin đó nhưng không được. (wiki khi tôi nhớ lại đã giới thiệu cho tôi tài liệu này là cập nhật nhất).
Dean Hiller

Tôi muốn google nginx location, lần đầu tiên là thế này :) nhưng tôi phải thừa nhận, người ta phải làm quen với tài liệu nginx, đặc biệt. tìm đúng thứ bên dưới phần mô-đun.
anh chàng từ đó đến

1
Trang đầu tiên google của tôi sử dụng truy vấn tìm kiếm của bạn chính xác là những gì tôi đọc lần đầu tiên trong khoảng ... wiki.nginx.org/HttpCoreModule mà trong RED nói rằng bài viết đã lỗi thời dẫn tôi đến một trang khác (bạn phải biết các kết quả khác nhau của google bạn là ai - nếu đăng nhập - và máy chủ nào bạn kết thúc). Tôi đã không truy cập vào trang được đưa ra dưới đây, tất cả đều rung chuyển bằng cách sử dụng google và đọc xung quanh :( !!!
Dean Hiller

Câu trả lời:


16

Như đã nêu trong tài liệu nginx , ~*regex dành cho kết hợp không phân biệt chữ hoa chữ thường và ~dành cho phân biệt chữ hoa chữ thường .

Cú pháp của bạn là ok, nhưng nó có thể được viết lại mà không cần regex (vị trí ngắn nhất đi cuối cùng trong yêu cầu khớp):

location /api/postdata {
}

location / {
}

1
ah, mát mẻ ... yeah, tôi đã cố gắng googling ~ * nhưng google không lập chỉ mục ký tự đặc biệt quá rõ (nginx quá xấu không sử dụng chỉ thị thay vì như tôi có lẽ sẽ hạ cánh ngay trên trang đó)
Dean Hiller

@DeanHiller Hình như google đã sửa lỗi đó: D
Yarek T

Câu trả lời của bạn có thể không chính xác vì /api/PostDatasẽ không khớp mà không có~*
Devy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.