From aaed9a56d1325617802a49f396dd71a74d38c241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Sat, 11 Apr 2026 15:37:38 +0400 Subject: [PATCH] Slow down Gitea 404s to mess with scrapers/bots Seems to have helped quite a lot for dealing with AI scrapers using up all available server resources --- .../templates/default/nginx_conf_web.erb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/site-cookbooks/kosmos_gitea/templates/default/nginx_conf_web.erb b/site-cookbooks/kosmos_gitea/templates/default/nginx_conf_web.erb index 13c6dd2..1b40b4d 100644 --- a/site-cookbooks/kosmos_gitea/templates/default/nginx_conf_web.erb +++ b/site-cookbooks/kosmos_gitea/templates/default/nginx_conf_web.erb @@ -18,6 +18,8 @@ server { client_max_body_size 121M; + proxy_intercept_errors on; + location ~ ^/(avatars|repo-avatars)/.*$ { proxy_buffers 1024 8k; proxy_pass http://_gitea_web; @@ -52,5 +54,18 @@ server { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; + error_page 404 = @slow_404; + } + + # Slow down 404 responses to make scraping random URLs less attractive + location @slow_404 { + internal; + default_type text/plain; + content_by_lua_block { + ngx.sleep(10) + ngx.status = 404 + ngx.say("Not Found") + ngx.exit(ngx.HTTP_NOT_FOUND) + } } }