У меня многосайтовая установка Wordpress, и у меня есть несколько ботов, забивающих домашние страницы. Я хотел бы установить ограничение скорости только на главной(их) странице(ях) сайта(ов), но оставить остальные страницы неограниченными.
Моя проблема заключается в создании местоположения NGINX, которое будет соответствовать «пустому» адресу домашней страницы /index.php. Я могу ограничить весь сайт, сопоставив «/», но это не то, что мне нужно.
Я пытался использовать «индекс» в качестве определенного местоположения, но это не сработало. Есть ли трюк, который мне не хватает? Это сложный случай для поиска, потому что большинство выборочных ограничивающих вопросов исходят от людей, которые делают противоположное, люди ограничивают ресурсы более конкретными адресами, такими как сценарии входа в систему.
Вот что я пробовал:
limit_req_zone $binary_remote_addr zone=mainlimit:10m rate=1r/m;
сервер {
# конфигурация SSL
слушать 443 ssl http2;
слушать [::]:443 ssl http2;
включить snippets/ssl-example.com.conf;
включить snippets/ssl-params.conf;
имя_сервера example.com www.example.com;
client_max_body_size 120M;
корень /usr/доля/nginx/пример;
индекс index.php index.html index.htm;
переписать /wp-admin$ $scheme://$host$uri/ на постоянный;
#subdomain multi site с wp в подкаталоге 'wp'
если (!-e $request_filename) {
# Перенаправление wp-* файлов/папок
переписать ^(/[^/]+)?(/wp-.*) /wp/$2 последним;
# Перенаправить другие файлы php
переписать ^(/[^/]+)?(/.*\.php) /wp/$2 последним;
}
индекс местоположения { #ЭТО НЕ СООТВЕТСТВУЕТ ДОМАШНЕЙ СТРАНИЦЕ
limit_req zone=mainlimit Burst=3 nodelay;
try_files $uri $uri/ /index.php?$args ;
}
место расположения / {
#limit_req zone=mainlimit Burst=3 nodelay; ЭТО ВСЕМ СООТВЕТСТВУЕТ
try_files $uri $uri/ /index.php?$args ;
}
расположение ~* /wp-content/uploads/.*\.php$ {
вернуть 503;
}
расположение ~* /данные/.*\.php$ {
вернуть 503;
}
***БОЛЬШЕ ВЕЩЕЙ...