linux – Nginx,从某些域引用日志引用到单独的日志文件
发布时间:2020-12-14 02:59:54 所属栏目:Linux 来源:网络整理
导读:我有我的nginx设置阻止某些引用,如下所示: if ($http_referer ~* (site_name) ) { return 403;} 这工作正常,但我还想将阻止的引用者记录到单独的文件中. 我尝试添加 access_log /path/to/server/bad_domain.log; 在if语句中;但这不起作用. 有任何想法吗?
我有我的nginx设置阻止某些引用,如下所示:
if ($http_referer ~* (site_name) ) { return 403; } 这工作正常,但我还想将阻止的引用者记录到单独的文件中. 我尝试添加 access_log /path/to/server/bad_domain.log; 在if语句中;但这不起作用. 有任何想法吗? 谢谢. 编辑: 我也试过这个无济于事. if ($http_referer ~* (site_name) ) { set $crawler 'yes'; return 403; } location ~ .* { if ($crawler = 'yes') { access_log /path/to/server/bad_domain.log; } } 编辑2: 试 map $http_referer $log_referer { domain1.com 1; default 0; } server { .. if ($http_referer = "1") { set $log_referer 1; } access_log /path/to/logs/bad_domain.log if=$log_referer; ...} 给我的输出 nginx: [emerg] unknown log format "if=$log_referer" 解决方法
根据发现
here和
here的nginx文档,尝试使用map规则将您的http引用映射到某个值,然后根据该值登录到特定文件.将此映射放在http上下文中(服务器上下文之外):
map $http_referer $log_referer { example.com 1; default 0; } 这将转到您的服务器,位置等; access_log /path/to/bad_domain.log combined if=$log_referer; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |