Один из моих сайтов продолжает массово рассылаться с поддельными URL-запросами, содержащими строки запроса.
Я имею в распоряжении кэширование, но к сожалению строки запроса проигнорированы. Теперь каждый раз, когда я добираюсь, лавинная рассылка строки запроса запрашивает, чтобы мой сервер был закреплен из-за притока хитов к базе данных и PHP, обрабатывающему (я использую Wordpress), и мой сервер не становится ни-одним-respondant.
Как я могу игнорировать/переписывать запросы, содержащие строки запроса для какого-либо URL, который будет передан до моего бэкенда, но позволит им для статических файлов и определенных URL (/поиск/,/wp-admin/, wp-login.php и т.д.)?
Моя установка nginx
location ~ \.php$ {
fastcgi_index index.php;
try_files $uri = 404;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass unix:/dev/shm/php-fpm-www.sock;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
}
# Use cached or actual file if they exists, otherwise pass request to WordPress
location / {
try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php?$args ;
}
Существует ли легкое (выход) способ выполнить, это с переписывает? Я потрясен, что я не могу найти едва никакую другую информацию об этом в Интернете (возможно, я не ищу правильное решение), я, конечно, не могу быть единственным, кто сталкивается с этой проблемой.
Как все имеют дело с ним?
Кажется, это сделало трюк...
http {
limit_conn_zone $binary_remote_addr zone=default_con:20m;
limit_req_zone $binary_remote_addr zone=php:1m rate=2r/s;
location ~ \.php {
## LIMIT REQUESTS TO STOP SERVER GETTING NAILED ##
limit_req zone=php burst=7 nodelay;
limit_conn default_con 2;
fastcgi_index index.php;
try_files $uri = 404;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass unix:/dev/shm/php-fpm-www.sock;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
}
}