LINUX.ORG.RU

История изменений

Исправление Xintrea, (текущая версия) :

Ну вот я сделал такой конфиг и перегрузил сервис nginx:

# Выделение зоны в памяти размером 10Мб для накопления IP-адресов запросов
# чтобы их ограничить для заданных URL-ов 5 штуками в минуту
limit_req_zone $binary_remote_addr zone=ipAddrZone:10m rate=5r/m;

server {
...

    # Именованная локация, содержимое которой не обрабатывается напрямую,
    # а вызывается из других локаций
    location @php {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php5.6-fpm.sock;
     }

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files . @php; # Вызов именованной локации
    }


    # Правила для блокировка спама на форуме - блокируются частые попытки регистрации
    # с одного и того же IP-адреса
    location /punbb/register.php {
        limit_req zone=ipAddrZone nodelay;
        try_files . @php; # Вызов именованной локации
    }

    location /punbb/extensions/pun_antispam/image.php {
        limit_req zone=ipAddrZone nodelay;
        try_files . @php; # Вызов именованной локации
    }
}

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

195.182.157.224 - - [22/May/2024:18:14:21 +0300] 
"GET /punbb/register.php HTTP/1.1" 200 4460 
"https://имя_сайта/punbb/" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

195.182.157.224 - - [22/May/2024:18:14:23 +0300]
"GET /punbb/extensions/pun_antispam/image.php?36cec89d1cd70c29b781a1814dfb1ba6 HTTP/1.1" 200 6839
"https://имя_сайта/punbb/register.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

Вопрос: почему такой вариант конфига не работает как надо?

Исправление Xintrea, :

Ну вот я сделал такой конфиг и перегрузил сервис nginx:

# Выделение зоны в памяти размером 10Мб для накопления IP-адресов запросов
# чтобы их ограничить для заданных URL-ов 5 штуками в минуту
limit_req_zone $binary_remote_addr zone=ipAddrZone:10m rate=5r/m;

server {
...

    # Именованная локация, содержимое которой не обрабатывается напрямую,
    # а вызывается из других локаций
    location @php {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php5.6-fpm.sock;
     }

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files . @php; # Вызов именованной локации
    }


    # Правила для блокировка спама на форуме - блокируются частые попытки регистрации
    # с одного и того же IP-адреса
    location /punbb/register.php {
        limit_req zone=ipAddrZone nodelay;
        try_files . @php; # Вызов именованной локации
    }

    location /punbb/extensions/pun_antispam/image.php {
        limit_req zone=ipAddrZone nodelay;
        try_files . @php; # Вызов именованной локации
    }
}

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

195.182.157.224 - - [22/May/2024:18:14:21 +0300] 
"GET /punbb/register.php HTTP/1.1" 200 4460 
"https://имя_сайта/punbb/" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

195.182.157.224 - - [22/May/2024:18:14:23 +0300]
"GET /punbb/extensions/pun_antispam/image.php?36cec89d1cd70c29b781a1814dfb1ba6 HTTP/1.1" 200 6839
"https://имя_сайта/punbb/register.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"


Вопрос: почему такой вариант не работает?

Исходная версия Xintrea, :

Ну вот я сделал такой конфиг и перегрузил сервис nginx:

# Выделение зоны  в памяти размером 10Мб для накопления IP-адресов запросов
# чтобы их ограничить для заданных URL-ов 5 штуками в минуту
limit_req_zone $binary_remote_addr zone=ipAddrZone:10m rate=5r/m;

server {
...

    # Именованная локация, содержимое которой не обрабатывается напрямую,
    # а вызывается из других локаций
    # Описание: pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location @php {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php5.6-fpm.sock;
     }

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files . @php; # Вызов именованной локации
    }


    # Правила для блокировка спама на форуме - блокируются частые попытки регистрации
    # с одного и того же IP-адреса
    location /punbb/register.php {
        limit_req zone=ipAddrZone nodelay;
        try_files . @php; # Вызов именованной локации
    }

    location /punbb/extensions/pun_antispam/image.php {
        limit_req zone=ipAddrZone nodelay;
        try_files . @php; # Вызов именованной локации
    }
}

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

195.182.157.224 - - [22/May/2024:18:14:21 +0300] 
"GET /punbb/register.php HTTP/1.1" 200 4460 
"https://имя_сайта/punbb/" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

195.182.157.224 - - [22/May/2024:18:14:23 +0300]
"GET /punbb/extensions/pun_antispam/image.php?36cec89d1cd70c29b781a1814dfb1ba6 HTTP/1.1" 200 6839
"https://имя_сайта/punbb/register.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"


Вопрос: почему такой вариант не работает?