Điểm:1

Cấu hình giới hạn tốc độ không hoạt động trong nginx

lá cờ mx

Tôi đang cố gắng giới hạn tốc độ cho bất kỳ lệnh gọi nào tới URL có tiền tố /api/, tôi đã định cấu hình giới hạn tốc độ với cấu hình được đính kèm, nhưng tôi không thấy bất kỳ sự điều chỉnh nào khi sử dụng Axios để kiểm tra.

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
người phục vụ {
    server_name gmmff.test;
    gốc /home/angel/wdev/laravel/gmf/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    error_log /var/log/nginx/gmf.log cảnh báo;
    access_log /var/log/nginx/gmf-access.log;
    chỉ số index.php;

    bộ ký tự utf-8;

    địa điểm / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    vị trí /api/ {
        vùng giới hạn_req=mylimit;
        viết lại ^/api/(.*)$ /index.php?$query_string;
    }

    vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
    vị trí = /robots.txt { truy cập_đăng xuất; log_not_found tắt; }

    error_page 404 /index.php;

    vị trí ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        bao gồm fastcgi_params;
    }

    vị trí ~ /\.(?! nổi ​​tiếng).* {
        Phủ nhận tất cả;
    }

}
Điểm:0
lá cờ jp

Các URI bắt đầu bằng /api/ được viết lại thành /index.phpgiới hạn_req lệnh không còn trong phạm vi khi URI sau đang được xử lý.

Tùy chọn 1) Bạn có thể xử lý index.php tập tin trong vị trí /api/ chặn.

Ví dụ:

vị trí /api/ {
    vùng giới hạn_req=mylimit;
    bao gồm fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
    fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
}

chỉ đơn giản là điểm SCRIPT_FILENAME đến vị trí của index.php.


Tùy chọn 2) Di chuyển giới hạn_req để nó luôn nằm trong phạm vi, nhưng bật và tắt nó một cách hiệu quả bằng cách thao tác với biến "key" bản đồ chỉ thị.

Ví dụ:

bản đồ $request_uri $token {
    ~^/api/ $binary_remote_addr;
    mặc định    '';
}
limit_req_zone $token zone=mylimit:10m rate=1r/s;

người phục vụ {
    ...
    vùng giới hạn_req=mylimit;
    ...
}

Từ tài liệu:

Các yêu cầu có giá trị khóa trống không được tính.

Angel avatar
lá cờ mx
Tôi đã thử phương pháp số 1, với cấu hình sau https://Pastebin.com/fC5EBifi Tôi đặt tốc độ thành 3r/s nhưng kết quả cuối cùng là tốc độ giới hạn ở 1r/s, tôi đã thử phương pháp 2 và kết quả tương tự .

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