在我的nginx.conf中,我添加了以下代码来拒绝非法请求:
server {
...
## Deny illegal Host headers
if ($host !~* ^(www.mydomain.com|xxx.xxx.xxx.xxx)$) {
return 444;
}
...
}但是这个请求信息总是写在访问日志中,我认为这是监视器请求,因为它们太多了,来自两个不安全的站点,而且仅仅是HEAD请求。
那么,如何停止记录这些非法请求信息以访问日志呢?
谢谢。
发布于 2017-04-07 08:08:26
您应该使用单独的服务器块。
server {
listen 80;
# valid host names
server_name www.example.com;
server_name xx.xx.xx.xx;
# you site goes here
}
# requests with all other hostnames will be caught by this server block
server {
listen 80 default_server;
access_log off;
return 444;
}那将是简单而有效的
发布于 2017-04-07 07:51:44
很遗憾地发现,nginx(1.7.0及更高版本)日志鼠标提供了条件测井,而文档示例只是状态条件:
if参数(1.7.0)启用条件日志记录。如果条件计算为“0”或空字符串,则不会记录请求。在下面的示例中,响应代码为2xx和3xx的请求将不会被记录: 映射$status $loggable {^23 0;默认值1;} access_log /path/to/access.log . map组合if=$loggable;
同样,回答在nginx中禁用特定请求的日志记录已经提到了这个信息。我只是忽略了它。
现在我将以下代码添加到nginx日志设置中:
map $status $loggable {
~444 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;非法主机标头请求尚未记录。
https://stackoverflow.com/questions/43271184
复制相似问题