Мне такое поведение показалось довольно странным, поэтому я решил задать вопрос здесь.
Возьмите этот блок локации;
location ~ /(wp-config.php|readme.html|licence.txt|license.txt|readme.txt) {
access_log /var/log/nginx/blocked.log blocked;
deny all;
}
Он ничего не регистрирует в файле журнала, однако если я удалюотрицать все; - это так. То же самое касаетсявозврат 403и т. д.
Я хочу регистрировать заблокированные запросы.
nginx version: nginx/1.8.0
ОБНОВЛЯТЬ
Причиной этого, по-видимому, является определение вами собственных страниц ошибок. Например:
http { ..
error_page 403 /error/403.html;
error_page 404 /error/404.html;
.. }
Удаление этих строк позволило вести журнал
решение1
Что нужно проверить:
- Вы определили
blocked
? - Или путь к файлу журнала правильный?
- Проверьте
location
заказ, так какwp-config.php
скорее всего он будет совпадатьlocation ~ \.php$
или похож
У меня это работает с nginx: 1.7.11.1
Gryphon, хотя это среда Windows.
Вот моя установка:
http {
...
log_format robots '$remote_addr - $remote_user [$time_local] '
'$host "$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
...
server {
...
location ~/(robots.txt|readme.html) {
access_log logs/nginx-access-robots.log robots;
deny all;
}
...
}
}