ฉันมีการติดตั้งหลายเว็บไซต์ของ Wordpress และฉันมีบอทบางตัวที่ตอกหน้าโฮมเพจ ฉันต้องการกำหนดอัตราจำกัดเฉพาะในหน้าแรกของไซต์ แต่ปล่อยให้หน้าอื่นๆ ไม่จำกัด
ปัญหาของฉันคือการสร้างตำแหน่ง NGINX ที่จะตรงกับที่อยู่ "ว่าง" ของหน้าแรกของ /index.php ฉันสามารถจำกัดทั้งไซต์ได้โดยจับคู่ "/" แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ
ฉันได้ลองใช้ "ดัชนี" เป็นตำแหน่งที่กำหนด แต่ไม่ได้ผล มีเคล็ดลับที่ฉันขาดหายไปหรือไม่? กรณีนี้เป็นกรณีที่ยากในการค้นหา เนื่องจากคำถามที่จำกัดการเลือกส่วนใหญ่มาจากผู้ที่ทำตรงกันข้าม คือผู้ที่จำกัดทรัพยากรด้วยที่อยู่ที่เฉพาะเจาะจงมากขึ้น เช่น สคริปต์การเข้าสู่ระบบ
นี่คือสิ่งที่ฉันได้ลอง:
limit_req_zone $binary_remote_addr zone=mainlimit:อัตรา 10m=1r/m;
เซิร์ฟเวอร์ {
# การกำหนดค่า SSL
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
รวมตัวอย่าง/ssl-example.com.conf;
รวมตัวอย่างข้อมูล/ssl-params.conf;
server_name example.com www.example.com;
client_max_body_size 120M;
รูท /usr/share/nginx/example;
ดัชนี index.php index.html index.htm;
เขียนใหม่ /wp-admin$ $scheme://$host$uri/ ถาวร;
#subdomain หลายไซต์ที่มี wp ใน 'wp' subdir
ถ้า (!-e $request_filename) {
# เปลี่ยนเส้นทางไฟล์ / โฟลเดอร์ wp-*
เขียนใหม่ ^(/[^/]+)?(/wp-.*) /wp/$2 สุดท้าย;
# เปลี่ยนเส้นทางไฟล์ php อื่น ๆ
เขียนใหม่ ^(/[^/]+)?(/.*\.php) /wp/$2 สุดท้าย;
}
ดัชนีตำแหน่ง { #นี่ไม่ตรงกับหน้าแรก
โซน limit_req = mainlimit ระเบิด = 3 โหนดเลย์;
try_files $uri $uri/ /index.php?$args ;
}
ที่ตั้ง / {
#limit_req zone=mainlimit ระเบิด=3 โหนดเลย์; สิ่งนี้ตรงกับทุกสิ่ง
try_files $uri $uri/ /index.php?$args ;
}
ตำแหน่ง ~* /wp-content/uploads/.*\.php$ {
กลับ 503;
}
ตำแหน่ง ~* /data/.*\.php$ {
กลับ 503;
}
***ข้อมูลเพิ่มเติม...