I am trying to weed out requests for any uri that contains the string, "announce" (no quotes). That would include

 * /announce
 * /announce/
 * /announce.php

each with or without query strings. I have the following location blocks in my server context:

       location ~* announce {
               return 444;
       }

       location ~* /announce.php {
               return 444;
       }

and my log looks good:

"122.100.172.162"       "03/Aug/2022:20:19:00 -0400"    "GET /announce.php?info_hash=%DF%AEF%40%7F%1DA%C9%91S%9F%D4%0D%D6J%E6%992%A3~&peer_id=-BC0171-_sSI%D1n%AA%A9%C3%A5%25%1E&port=15302&natmapped=1&localip=172.18.80.247&port_type=lan&uploaded=46317568&downloaded=11285925264&left=178446055&numwant=50&compact=1&no_peer_id=1&key=38892 HTTP/1.1"        "444"   "0"     "0.000"  "-"     "BitComet/1.71.9.7"


until it doesn't:

"81.110.165.170"        "03/Aug/2022:20:24:03 -0400"    "GET /announce.php?info_hash=%5B%EA0r%8A*8%C4%DAA%81%02%B4%BF%97%CC%1E%A9y%C8&am_peer_id=-TR300%5A-LDXTt3fAIyq%00&port=43342&uploaded=0&downloaded=0&left=5593535899&event=started&key=0&compact=1&numwant=200 HTTP/1.1" "400"   "150"   "0.000" "-"     "-"


I have tried various location prefixes and regexes (and combinations thereof) but can't seem to find the one that works correctly.

Thanks for any help
_______________________________________________
nginx mailing list -- nginx@nginx.org
To unsubscribe send an email to nginx-le...@nginx.org

Reply via email to