|
|
Diposting pada 07/11/2018 10.05.15
|
|
|

BBS atau situs web seringkali hanya memiliki izin untuk melihat halaman ini, atau mengunduh sumber daya ini, beberapa hari yang lalu saya mengunjungi server nginx cara mengimplementasikan kontrol file ini, menggunakan x-sendfile.
1. Apa itu X-Sendfile?
X-Sendfile adalah mekanisme yang menyampaikan permintaan pengunduhan file dari aplikasi backend ke server web front-end untuk diproses, yang secara signifikan dapat meningkatkan efisiensi server dengan menghilangkan tekanan program back-end untuk membaca dan memproses file untuk memproses pengiriman, terutama saat berhadapan dengan unduhan file besar.
X-Sendfile diimplementasikan melalui header HTTP tertentu: menentukan alamat file di header X-Sendfile untuk diiklankan ke server web front-end. Ketika server web mendeteksi header yang dikirim oleh backend ini, server web mengabaikan output lain dari backend dan menggunakan komponennya sendiri (termasuk pengoptimalan seperti header cache dan koneksi ulang titik henti) untuk mengirim file ke pengguna.
Namun, sebelum menggunakan X-Sendfile, penting untuk dipahami bahwa ini bukan fitur standar dan dinonaktifkan oleh sebagian besar server web secara default. Server web yang berbeda memiliki implementasi yang berbeda, termasuk format header X-Sendfile yang berbeda. Jika salah konfigurasi, pengguna dapat mengunduh file 0 byte.
Menggunakan X-Sendfile akan memungkinkan pengunduhan file di direktori non-web (misalnya /root/) bahkan jika file dinonaktifkan di bawah perlindungan .htaccess.
Server web yang berbeda menerapkan header HTTP yang berbeda
Header SENDFILE | WEB server yang digunakan | | X-Sendfile | Apache, Lighttpd v1.5, Cherokee | | X-LIGHTTPD-send-file | Lighttpd v1.4 | | Pengalihan X-Accel | Nginx, Cherokee |
Kelemahan menggunakan X-SendFile adalah Anda kehilangan kendali atas mekanisme transfer file. Misalnya, jika Anda ingin melakukan tindakan tertentu setelah mengunduh file, seperti mengizinkan pengguna mengunduh file hanya sekali, X-Sendfile ini tidak akan dapat melakukannya karena skrip php di latar belakang tidak tahu apakah pengunduhan berhasil.
2. Bagaimana cara menggunakan NGINX?
Nginx mendukung fitur ini secara default dan tidak memerlukan modul tambahan untuk dimuat. Hanya saja implementasinya sedikit berbeda, dan header HTTP yang perlu dikirim adalah X-Accel-Redirect. Selain itu, Anda perlu membuat pengaturan berikut dalam file konfigurasi
internal berarti bahwa jalur ini hanya dapat diakses di dalam Nginx dan tidak dapat diakses langsung oleh browser untuk mencegah unduhan yang tidak sah.
3. Bagaimana cara menggunakan program PHP?
Jika Anda menambahkan header X-Accel-Redirect, pengguna akan mengunduh file di bawah jalur /game. Kontrol izin file kami diterapkan.
Pengenalan dokumentasi resmi:Login hyperlink terlihat.
|
Mantan:Cinta, pernikahan dan keluarga, paruh pertama bulan + 18 JuniDepan:CF adalah perspektif pertama di seluruh jaringan untuk membidik diri dan stabil selama satu bulan
|