gpt4 book ai didi

php - Apache/PHP 多次提供文件服务

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:50:56 25 4
gpt4 key购买 nike

我有一个带有 download.php 页面的系统。该页面根据 DB 记录获取和 id 并加载一个文件,然后提供它。我注意到有几个实例在短时间跨度(20 毫秒)内多次请求文件。时间对于人工输入来说太快了。在很多情况下,下载器都可以正常运行。然而,在仔细查看下载器的使用情况时,我确实看到了一些有趣的行为。

例如,IP 地址 xxx.xxx.xxx.xxx(属于德国 xxxxxx.de 拥有的范围内的 IP 地址)是通过 Google 访问该站点的。他们四处浏览,然后来到页面 http://site.com/xxxx/press+125.php他们在上午 9 点 4 分 23 秒发出了/download.php?id=/ZZ/n+aH55Y=(PDF)的请求。仅此一点没什么大不了的。然而,有趣的是服务器似乎一直全神贯注于为该请求提供服务。在日志中,请求首先在 9:09:48 到 9:10:00 之间完成。看起来用户一定是厌倦了那段时间的等待,并再次请求该文档两次。在 09:14:47 和 09:15:00 之间再次出现相同的请求,只是它是从上午 9:04:43 开始的,比第一个请求晚了 20 毫秒。然后它第三次弹出,请求从 09:05:06 开始,在 09:19:55 和 09:19:58 之间完成!

我怀疑那个文件。在查看日志时,我看到了服务器需要一些时间来处理该特定文件的其他实例。查看来自 zzz.zzz.zzz.zzz[不同于上面] 的文件/download.php?id=/ZZ/n+aH55Y= 的请求列表(与之前相同的文件):

请求时间完成时间04:32:43 04:33:3604:32:50 04:33:3604:32:51 04:33:3804:33:05 04:33:3804:33:34 04:33:4204:33:05 04:33:42

所以肯定有事情发生。它是否与这个特定的文档使服务器、download.php 页面的代码跳闸有关,或者我们是否只是在实时播放时看到某些服务器级别过载的证据,我还不确定。

公平地说,还有其他人下载/download.php?id=/ZZ/n+aH55Y=(相同的 PDF)而没有出现错误。然而,有趣的是,多个进程似乎只发生在这个文件上,而且只有在通过页面 http://site.com/press+125.php 访问它时才会发生。 .如果代码内部有问题导致系统触发多个占用服务器的下载请求,则需要进一步调查。

我不知道这个press+125.php是不是兔子洞,但是有种奇怪的良心。

有什么想法吗?我完全没有想法。 Apache 用完了吗?诸如此类。

///DOWNLOAD.php
$file = new files();
$file->comparison_filter("id", "=", $id); //sql to load
if ($file->load()) {
$file->serve();
}


//FILES
function serve() {
if ($this->is_loaded) {
if (file_exists($this->get_value("filename"))) {
if ($this->get_value("content_type") != "") {
header("Content-Type: " . $this->get_value("content_type"));
}
header("Content-Length: " . filesize($this->get_value("filename")));
if ($this->get_value("flag_image") == 0 || $this->get_value("flag_image") == false) {
header("Cache-Control: private");
header("Content-Disposition: attachment; filename=" . urlencode($this->get_value("original_filename")));
}

set_time_limit(0);
@readfile($this->get_value("filename"));

exit;
}
}
}

最佳答案

使用 CDN 网络进行文件下载。他们会为您处理这件事,并为您提供带宽和可扩展性。不再锁定您的服务器。 http://www.reelseo.com/free-cdn-velocix/

关于php - Apache/PHP 多次提供文件服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com