在我去指责某人之前,我需要确认一些事情......好吧,我宁愿不说。
问题:
我们允许用户上传图片并将其嵌入我们网站的文本中。过去我们也允许用户热链接到我们的图像,但由于服务器负载,我们不得不停止这种做法。
当前的“解决方案”:
程序员用来解决我们“连接太多”问题的方法是将接收和处理图像请求的文件(image_request.php)重命名为image_request2.php,并将原来的内容替换为
<?php
header("HTTP/1.1 500 Internal Server Error") ;
?>
显然,这导致所有 src 属性指向原始 image_request.php 的图像都被破坏,并且在这种情况下也是要发送的错误代码。
建议的解决方案:
我觉得更优雅的解决方案是:
在 .htaccess
- 如果请求是针对 image_request.php
- 检查推荐人
- 如果推荐人不是我们的网站,请发送适当的标题
- 如果referrer是我们的站点,继续image_request.php并处理图像请求
我想知道的是:
与对 image_request.php 的每个请求简单地返回 500 相比:
如果我们使用上面列出的我提出的替代解决方案,将会产生多少负载?
有一个更好的方法吗?
我们主要关心的是该网站是否正常运行。我不愿意同意打破所有内部链接的图像是解决这个问题的最佳/唯一方法。我拒绝告诉我们的用户,由于我们更改了某些内容,他们现在必须手动更改之前上传的所有内容中的嵌入代码。