我的网站最近流量太大,以致于我的服务器负载极高。
load average: 83.99, 72.89, 77.70
我的网站托管在专用服务器上,该服务器配备 64 GB RAM 和 Intel i7 6700k CPU,并由 cloudflare 提供支持。
我不使用任何分析方法来追踪访客。
从过去的 3-4 天开始,流量开始增加,我以为这是我网站的正常流量,直到我使用谷歌搜索浏览其他网站时发现,其他一些网站充当在线/反向代理,并将我的网站加载为他们自己的网站,而他的网站的流量比我的多得多,所以我访问了
https://www.whatismyip.com/
使用该网站的代理,例如
www.example.com/proxy_url=https://www.whatismyip.com
获取 IP 地址,然后在 cloudflare 中屏蔽他的 IP 地址。每次有人通过代理访问我的网站时,这种方法都行不通。
那么我如何才能知道是否有任何 IP 地址向我的网站发出了过多的请求?
问题已解决。我做了什么 1)在 NGINX 上启用日志
nginx.conf
http{
#main log format for capturing real ip addresses
log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $request_time';
}
我的域名.com.conf
server{
access_log /usr/local/nginx/logs/access.log main;
}
nginx -t
service nginx restart
2)我去了对我的网站进行反向代理的网站。并尝试访问一些不存在的页面。
例如https://www.proxy-example.com/proxy_url=https://www.my-example.com/BAN_THIS_IP
3)我检查了我的日志 BAN_THIS_IP
cat /usr/local/nginx/logs/access.log | grep BAN_THIS_IP
并找到了服务器的IP地址。
4) 在 cloudflare 中添加该 IP 地址,并将其设置为 Block。
谢谢
答案1
由于您的问题定义不明确(特别是关于它如何到达您的网络),因此没有简单的解决方案,但是您的工具箱中有许多工具,包括 -
Cloudflare 传递 CF-Connecting-IP 和 X-Forwarded-For 标头. 您应该将此信息与请求一起记录 - 如何执行此操作取决于您的 Web 服务器。这里是关于如何在 Apache 中执行此操作的链接。
获得上述信息后,您可以配置失败2ban计算给定时间内针对该日志文件的命中次数,并根据大量命中次数将其列入黑名单。不要低估这一点,因为每个元素都将记录在此日志文件中。
大多数好的 Web 服务器都会让您根据各种变量处理流量 - 需要查看的一个变量是 USER-AGENT 字符串 - 如果这是一个现成的代理,它可能会以您可以获取的方式设置用户代理字符串。
使用 IPTables - 您可以使用 connlimit 模块限制每个 IP 地址的最大连接数。查看这里实现。不幸的是,如果您使用 cloudflare,这将无法很好地工作,因为您的所有连接都来自同一个 IP 地址。
答案2
禁止通过代理访问您网站的合法用户肯定会导致流量流失或声誉受损。您最好通过代理提供商攻击代理。
一个答案 StackOverflow 上详细介绍了一种在 nginx 中使用标头组合来处理仅通过正确的主机名发送给您的请求的方法。您可以采用此解决方案来找出客户端请求中使用的代理的名称,并按如下所述使用此名称。
好的建议来自 另一个答案:
以下是您可能需要考虑的一些策略:
1. 从服务器日志中,找出代理下载网站的方式,并有选择地更改其响应
例如,如果他使用一个特定的提供商,则阻止或更改其地址空间的响应2. 非正式地通知代理提供者可能就足够了
一定要直接联系他们的滥用部门,而不是销售人员。如果他们的服务器IP是由不同于其域名注册商的公司注册的,请采取阻力最小的路径 - 首先询问总部位于离您所在国家较近的提供商。3. 根据 TLD,找出网站运营商和/或获得法院命令迫使其 DNS 提供商删除它们可能很容易,也可能根本不可能
4. 向以下机构举报Google 安全浏览
使用选项Report Phishing Page
。如果我们的 Google 高层决定这样做,这将向代理用户发出一个大警告,并将该网站从搜索结果中删除。大多数浏览器的大多数用户都在使用 Google 安全浏览阻止列表,因此这不会影响到所有人,但几乎会影响到所有人。