Apache:用于阻止 URL 的 .htaccess 与 vhost conf 文件

Apache: .htaccess vs vhost conf file for blocking URLs

我需要阻止一些在我的网络服务器 (Apache) 中产生大量流量的 uld URL。例如阻止所有像 https://example.com/xxxxxx/

这样的请求

我不能用 IPtables 做到这一点,所以我在我的 .htaccess

中使用 mod_rewrite 和规则

这仍然消耗大量资源,我想知道是否有更好的方法在到达 Apache 之前阻止请求。或者在 Apache 中执行此操作的另一种最有效的方法。例如,我听说解析 .htaccess 文件会消耗资源,所以不确定使用 vhost .conf 文件是否有帮助,或者它真的是一样的...

关于如何使用 URL 阻止请求的任何建议?

谢谢专家!

当然,分布式配置文件比单一的、中央的和静态的配置消耗更多的负载。但是区别不像白天和黑夜。分布式配置的问题更多的是保持概览,维护它。

如果您可以让这些请求完全远离 http 服务器,您肯定会看到更多差异。您可以考虑使用前端服务器。像 nginx 或 HAProxy 这样的东西充当看门人,只转发那些你真正想要响应的请求。这在单个系统上没有什么意义,你需要两个单独的云服务甚至系统。

最好的方法是将类似这样的内容添加到您的 httpd / vhost.conf 文件中:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/xxxx$
RewriteRule ^ - [F]

每次调用 /xxxx 都会导致 mod_rewrite 到 return 403 响应。 确保将这些规则放入相应的 vhost 标签中。