|
|
Yayınlandı 7.11.2018 10:05:15
|
|
|

BBS veya web siteleri genellikle sadece sizin bu sayfayı görme veya bu kaynağı indirme iznine sahiptir, birkaç gün önce nginx sunucusunu ziyaret ettim, bu dosya kontrolünü x-sendfile kullanarak nasıl uygulayacağım.
1. X-Sendfile nedir?
X-Sendfile, dosya indirme taleplerini arka uç uygulamadan ön web sunucusuna ileten bir mekanizmadır ve özellikle büyük dosya indirmeleri sırasında dosyayı okuma ve işleme baskısını ortadan kaldırarak sunucu verimliliğini önemli ölçüde artırabilir.
X-Sendfile, X-Sendfile başlığındaki bir dosyanın adresini ön uç web sunucusuna ilan etmek için belirtilen belirli bir HTTP başlığı aracılığıyla uygulanır. Web sunucusu, arka uç tarafından gönderilen bu başlığı algıladığında, arka uçtan gelen diğer çıktıları görmezden gelir ve dosyayı kullanıcıya göndermek için kendi bileşenlerini (önbellek başlıkları ve kesme noktası yeniden bağlantıları gibi optimizasyonlar dahil) kullanır.
Ancak, X-Sendfile kullanmadan önce, bunun standart bir özellik olmadığını ve çoğu web sunucusu tarafından varsayılan olarak devre dışı bırakıldığını anlamak önemlidir. Farklı web sunucularının farklı uygulamaları vardır; farklı X-Sendfile başlık formatları dahil. Yanlış yapılandırılırsa, kullanıcılar 0 baytlık bir dosya indirebilir.
X-Sendfile kullanmak, dosya .htaccess koruması altında devre dışı olsa bile web dışı dizinlerden (örneğin /root/) dosyaların indirilmesine izin verir.
Farklı web sunucuları farklı HTTP başlıkları uygular
SENDFILE başlığı | Kullanılan WEB sunucusu | | X-Sendfile | Apache, Lighttpd v1.5, Cherokee | | X-LIGHTTPD-send-file | Lighttpd v1.4 | | X-Accel-Redirect | Nginx, Cherokee |
X-SendFile kullanmanın dezavantajı, dosya aktarım mekanizmasının kontrolünü kaybetmenizdir. Örneğin, bir dosyayı indirdikten sonra belirli işlemleri yapmak istiyorsanız, örneğin kullanıcının dosyayı sadece bir kez indirmesine izin vermek gibi, bu X-Sendfile bunu yapamaz çünkü arka plandaki php betiği indirmenin başarılı olup olmadığını bilmez.
2. NGINX nasıl kullanılır?
Nginx bu özelliği varsayılan olarak destekler ve ek modüllerin yüklenmesini gerektirmez. Sadece uygulama biraz farklı ve gönderilmesi gereken HTTP başlığı X-Accel-Redirect. Ayrıca, yapılandırma dosyasında aşağıdaki ayarları yapmanız gerekir
dahili olarak, bu yola yalnızca Nginx içinde erişilebiliyor ve izinsiz indirmeleri önlemek için tarayıcı tarafından doğrudan erişilemiyor.
3. PHP programları nasıl kullanılır?
X-Accel-Redirect başlığını eklerseniz, kullanıcı dosyayı /game yolu altında indirir. Dosya izin kontrolü uygulanıyor.
Resmi dokümantasyon tanıtımı:Bağlantı girişi görünür.
|
Önceki:Aşk, evlilik ve aile, ayın ilk yarısı + 18 HaziranÖnümüzdeki:CF, tüm ağda bir ay boyunca kendi kendine odaklanıp istikrara kavuşan ilk bakış açısıdır
|