Apache / PHP dosyası birden çok kez hizmet

2 Cevap php

Ben bir download.php sayfası olan bir sistemi var. Sayfayı alır ve id ve yükler DB Tutanak dayalı bir dosyayı ve sonra o kadar hizmet vermektedir. Ben dosyaları kısa zaman dilimlerine (20ms) birden çok kez talep edilen bir çift örneklerini fark ettik. Insan girişi için çok çabuk kez. Downloader fonksiyonları ince örneklerini bol miktarda vardır. Ancak, downloader kullanımı daha yakından bakmak alarak, bazı ilginç davranış gördün.

Örneğin, (Almanya'da xxxxxx.de ait bir aralıkta biridir) IP adresi xxx.xxx.xxx.xxx Google üzerinden siteye geldi. Onlar http://site.com/xxxx/press+125.php Orada için / 09:04:23 de download.php? Id = / ZZ / n + aH55Y = (PDF) bir isteği yayınladı gezmiştim ve sonra sayfa geldi. Tek başına bu büyük bir anlaşma değil. Ancak, ne ilginçtir sunucu oldukça bu isteği hizmet ile meşgul edilmiş gibi görünüyor olmasıdır. Günlüklerinde isteği ilk 9:09:48-09:10:00 tamamlar. Kullanıcı bu süre içinde bekleyen yorgun kazanılmış ve belgeye iki kez daha talep olması gerekir gibi görünüyor. Bu 09:04:43 dan hariç 09:14:47 ve 09:15:00 arasında aynı istek 20ms sonra ilk istek daha, tekrar görünür. Sonra 9:19:55-09:19:58 tamamladıktan 09:05:06 başlayan bir istek ile, üçüncü kez açılır!

Ben bu belgenin şüpheli değilim. Günlükleri bakarak ben bu belirli bir dosyayı işlemek için sunucuyu biraz zaman alıyor, diğer örneğini görebilirsiniz. ? Dosya / download.php id = / ZZ / n + aH55Y = (daha önce olduğu gibi aynı docuemnt) için [yukarıdaki farklı] zzz.zzz.zzz.zzz gelen taleplerin bu listeye göz atın:

Request time Complete Time 04:32:43 04:33:36 04:32:50 04:33:36 04:32:51 04:33:38 04:33:05 04:33:38 04:33:34 04:33:42 04:33:05 04:33:42

Yani bir şey kesinlikle oluyor. Bu belirli belge sunucu, download.php sayfanın kodunu veya yukarı açma ile ilgisi olup olmadığını ben henüz emin değilim gerçek zamanlı olarak oynar gibi biz sadece bazı sunucu düzeyinde yüklenmesinin kanıt görüyorsanız eğer.

Adalet, hatasız / download.php? Id = / ZZ / n + aH55Y = (aynı PDF) insan indirirken diğer örnekleri vardır. Ancak, çoklu süreçler sadece sayfasından erişilen sadece o zaman bu bir dosya ile ne gibi görünüyor, ve ilginçtir ki http://site.com/press+125.php. Sunucuyu işgal çoklu indirme istekleri kapalı yangın sistem neden kodu içinde yanlış bir şey var ise daha fazla araştırma taşımaktadır.

Bu basın +125. Php bir tavşan deliği olup olmadığını bilmiyorum, ama garip consicence var.

Herhangi bir fikir? Ben tamamen fikir bitti. Apache maxed? Böyle şeyler.

///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;
            }
        }
}

2 Cevap

Dosya yüklemeleri için bir CDN ağ kullanın. Onlar sizin için bu idare, artı bant genişliği ve ölçeklenebilirlik sağlayacaktır. Sunucunuzda artık kilit ups. http://www.reelseo.com/free-cdn-velocix/

Lütfen günlük config '% D% X' Ekle - Ben sizin sorularınızın çoğuna cevap bekliyoruz.

C.