Para evitar spam de referência, meu nginx.conf contém uma seção como esta:
if ($http_referer ~* spamdomain1\.com) {
return 444;
}
if ($http_referer ~* spamdomain2\.com) {
return 444;
}
if ($http_referer ~* spamdomain3\.com) {
return 444;
}
Essas regras dizem ao nginx apenas para fechar a conexão se o usuário tiver um desses referenciadores definidos. Existe uma maneira mais elegante de fazer isso? Posso definir uma lista desses domínios e dizer algo como “Se o referenciador estiver nesta lista, retorne 444”?
Eu tentaria um
map
:Então use assim:
Você pode usar a lógica
OR
para criar uma declaração de correspondência múltipla, por exemploEDITAR por comentário; tirando
break;
do blocongx_http_referer_module é outra maneira de fazer isso. Exemplo de bloqueio de spam de referência :