|
|
Közzétéve 2018. 11. 07. 10:05:15
|
|
|

A BBS-nek vagy a weboldalaknak gyakran csak neked van engedélyed arra, hogy megnézd ezt az oldalt, vagy letöltheted ezt az erőforrást, néhány nappal ezelőtt ellátogattam a nginx szerverre, hogy hogyan lehet ezt a fájlvezérlést megvalósítani x-sendfile segítségével.
1. Mi az az X-Sendfile?
Az X-Sendfile egy olyan mechanizmus, amely a fájlletöltési kéréseket továbbítja a háttérbeli alkalmazástól a front-end webszerverhez feldolgozásra, ami jelentősen javíthatja a szerver hatékonyságát azáltal, hogy eltávolítja a háttérprogram nyomását, hogy olvassa és feldolgozza a fájlt a küldéshez, különösen nagy fájlletöltések esetén.
Az X-Sendfile egy adott HTTP fejlécen keresztül valósul meg: megadja egy fájl címét az X-Sendfile fejlécében, hogy reklámozza a front-end webszervernek. Amikor a webszerver észleli ezt a backend által küldött fejlécet, figyelmen kívül hagyja a háttérből érkező egyéb kimeneteket, és saját komponenseket (beleértve az olyan optimalizálásokat, mint a gyorsítótár fejlécek és megszakítási pontok újrakapcsolódásai) használja a fájl elküldésére a felhasználónak.
Azonban az X-Sendfile használata előtt fontos megérteni, hogy ez nem szabványos funkció, és a legtöbb webszerver alapértelmezés szerint letiltja. A különböző webszerverek eltérő megvalósítással rendelkeznek, beleértve az X-Sendfile fejlécformátumokat is. Ha rosszul konfigurálják, a felhasználók letölthetnek egy 0 bájtos fájlt.
Az X-Sendfile használata lehetővé teszi a fájlok letöltését nem webes könyvtárakból (pl. /root/), még akkor is, ha a fájl le van tiltva a .htaccess védelem alatt.
Különböző webszerverek eltérő HTTP fejléceket valósítanak meg
SENDFILE fejléc | WEB szerver használata | | X-Sendfile | Apache, Lighttpd v1.5, Cherokee | | X-LIGHTTPD-send-file | Lighttpd v1.4 | | X-Accel-Átirányítás | Nginx, cseroki |
Az X-SendFile használatának hátránya, hogy elveszíted az irányítást a fájlátviteli mechanizmus felett. Például, ha bizonyos műveleteket szeretnél végrehajtani egy fájl letöltése után, például csak egyszer engeded a felhasználó letölteni a fájlt, ez az X-Sendfile nem képes rá, mert a háttérben lévő php szkript nem tudja, hogy a letöltés sikeres-e.
2. Hogyan kell használni az NGINX-et?
A Nginx alapértelmezetten támogatja ezt a funkciót, és nem igényel további modulok betöltését. Csak a megvalósítás kicsit más, és a HTTP fejléc, amit el kell küldeni, az X-Accel-Redirect. Ezen felül a konfigurációs fájlban a következő beállításokat kell beállítani
a belső megoldás azt jelenti, hogy ez az útvonal csak a Nginx-en belül érhető el, és közvetlenül böngészővel nem érhető el, hogy megakadályozza az engedély nélküli letöltéseket.
3. Hogyan lehet használni a PHP programokat?
Ha hozzáadod az X-Accel-Redirect fejlécét, a felhasználó letölti a fájlt a /game út alatt. A fájlengedély-ellenőrzésünk megvalósított.
Hivatalos dokumentáció bevezetése:A hiperlink bejelentkezés látható.
|
Előző:Szerelem, házasság és család, a hónap első fele + június 18.Következő:A CF az első nézőpont az egész hálózaton, amely egy hónapig öncélba lép és stabilizálódik
|