Am o instalare Wordpress multisite și am niște roboți care ciocănesc paginile de start. Aș dori să stabilesc o limită de rată numai pe pagina (paginile) de pornire a site-urilor, dar las celelalte pagini nelimitate.
Problema mea este să creez o locație NGINX care să se potrivească cu adresa „goldă” a paginii de start a /index.php. Pot limita întregul site prin potrivirea cu „/”, dar nu este ceea ce am nevoie.
Am încercat să folosesc „index” ca locație definită, dar nu funcționează. Există vreun truc care îmi lipsește? Acesta este un caz dificil de căutat, deoarece cele mai multe întrebări selective de limitare sunt de la oameni care fac contrariul, oameni care limitează resurse cu adrese mai specifice, cum ar fi scripturile de conectare.
Iată ce am încercat:
limit_req_zone $binary_remote_addr zone=mainlimit:10m rate=1r/m;
Server {
# Configurare SSL
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
includeți fragmente/ssl-example.com.conf;
include snippets/ssl-params.conf;
nume_server example.com www.example.com;
client_max_body_size 120M;
root /usr/share/nginx/example;
index index.php index.html index.htm;
rescrie /wp-admin$ $scheme://$host$uri/ permanent;
#subdomain multisite cu wp în subdir „wp”.
dacă (!-e $nume_fișier_cerere) {
# Redirecționează fișierele/folderele wp-*
rescrie ^(/[^/]+)?(/wp-.*) /wp/$2 ultimul;
# Redirecționează alte fișiere php
rescrie ^(/[^/]+)?(/.*\.php) /wp/$2 ultimul;
}
index de locație { #ACESTA NU SE POATE CU PAGINEA DE PRINCIPALA
limit_req zone=mainlimit burst=3 nodelay;
try_files $uri $uri/ /index.php?$args ;
}
Locație / {
#limit_req zone=mainlimit burst=3 nodelay; ACEASTA SE POTRIVA CU TOTUL
try_files $uri $uri/ /index.php?$args ;
}
locație ~* /wp-content/uploads/.*\.php$ {
întoarce 503;
}
locație ~* /data/.*\.php$ {
întoarce 503;
}
***MAI MULTE LUCRURI...