1
這個limit_req配置的工作原理是,如果我直接打開php頁面(index.php),但不是如果打到/ [漂亮的URL]並將其重寫爲index.php?$ args。NGINX第二個limit_req重寫後不工作
limit_req_zone $binary_remote_addr zone=dynamic:10M rate=1r/s;
limit_req_zone $binary_remote_addr zone=static:10M rate=60r/s;
location/{
limit_req zone=static burst=180;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
limit_req zone=dynamic burst=5;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
set $fsn /index.php;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fsn;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;
}
很明顯,它傳遞到了正確的位置,因爲它傳遞到了後端,但limit_req似乎沒有被使用。我無法在文檔中找到討論此限制的任何內容。有沒有人有任何想法?
編輯:註釋掉zone = static的第一個允許php處理一個工作。對我來說,這看起來像是limit_req中的一個bug。
什麼是limit_req_zone內容? – 2014-11-22 08:49:43
limit_req_zones在代碼塊的最頂部定義 – RobC 2014-12-03 07:11:57