Рейтинг:0

Ограничение скорости только для домашней страницы с помощью NGINX limit_req_zone

флаг in

У меня многосайтовая установка 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;
    }
 ***БОЛЬШЕ ВЕЩЕЙ...
Рейтинг:0
флаг us

Используйте точное соответствие для место расположения:

местоположение = / {
    limit_req zone=mainlimit Burst=3 nodelay;
    try_files $uri $uri/ /index.php?$args;
}

место расположения / {
    try_files $uri $uri/ /index.php?$args;
}
Elkrat avatar
флаг in
Большое спасибо! Я прочитал МНОГИЕ сообщения, но пропустил этот трюк.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.