|
|
Paskelbta 2018-11-07 10:05:15
|
|
|

BBS ar svetainės dažnai turi tik jums leidimą pamatyti šį puslapį arba atsisiųsti šį šaltinį, prieš kelias dienas apsilankiau nginx serveryje, kaip įgyvendinti šį failo valdymą, naudojant x-sendfile.
1. Kas yra X-Sendfile?
"X-Sendfile" yra mechanizmas, kuris perduoda failų atsisiuntimo užklausas iš vidinės programos į priekinį žiniatinklio serverį apdorojimui, o tai gali žymiai pagerinti serverio efektyvumą, pašalinant vidinės programos spaudimą skaityti ir apdoroti failą, kad būtų galima apdoroti siuntimą, ypač kai susiduriama su dideliais failų atsisiuntimais.
"X-Sendfile" įgyvendinamas naudojant konkrečią HTTP antraštę: nurodant failo adresą "X-Sendfile" antraštėje, kad būtų galima reklamuotis priekiniame žiniatinklio serveryje. Kai žiniatinklio serveris aptinka šią vidinės sistemos siunčiamą antraštę, jis nepaiso kitos vidinės sistemos išvesties ir naudoja savo komponentus (įskaitant optimizavimą, pvz., talpyklos antraštes ir stabdymo taško pakartotinius ryšius), kad išsiųstų failą vartotojui.
Tačiau prieš naudojant "X-Sendfile" svarbu suprasti, kad tai nėra standartinė funkcija ir dauguma žiniatinklio serverių ją išjungia pagal numatytuosius nustatymus. Skirtingi žiniatinklio serveriai turi skirtingus diegimus, įskaitant skirtingus X-Sendfile antraštės formatus. Jei netinkamai sukonfigūruota, vartotojai gali atsisiųsti 0 baitų failą.
Naudojant "X-Sendfile" bus galima atsisiųsti failus ne žiniatinklio kataloguose (pvz., /root/), net jei failas išjungtas naudojant .htaccess apsaugą.
Skirtingi žiniatinklio serveriai įdiegia skirtingas HTTP antraštes
SENDFILE antraštė | Naudojamas WEB serveris | | X-Sendfile | Apache, Lighttpd v1.5, Cherokee | | X-LIGHTTPD-siųsti-failą | Lighttpd v1.4 | | X-Accel-Redirect | Nginx, Čerokis |
"X-SendFile" naudojimo trūkumas yra tas, kad prarandate failų perdavimo mechanizmo kontrolę. Pavyzdžiui, jei atsisiuntę failą norite atlikti tam tikrus veiksmus, pvz., leisti vartotojui atsisiųsti failą tik vieną kartą, šis X-Send failas to padaryti negalės, nes fone esantis php scenarijus nežino, ar atsisiuntimas sėkmingas.
2. Kaip naudotis NGINX?
"Nginx" palaiko šią funkciją pagal numatytuosius nustatymus ir nereikalauja įkelti papildomų modulių. Tiesiog įgyvendinimas yra šiek tiek kitoks, o HTTP antraštė, kurią reikia išsiųsti, yra X-Accel-Redirect. Be to, konfigūracijos faile turite atlikti šiuos nustatymus
vidinis reiškia, kad šį kelią galima pasiekti tik "Nginx" ir naršyklė negali jo pasiekti tiesiogiai, kad būtų išvengta neteisėtų atsisiuntimų.
3. Kaip naudotis PHP programomis?
Jei pridėsite antraštę X-Accel-Redirect, vartotojas atsisiųs failą pagal /game kelią. Įdiegta failų leidimų kontrolė.
Oficialios dokumentacijos įvadas:Hipersaito prisijungimas matomas.
|
Ankstesnis:Meilė, santuoka ir šeima, pirmoji mėnesio pusė + birželio 18 d.Kitą:CF yra pirmoji perspektyva visame tinkle, kuri nusitaiko ir stabilizuojasi vienam mėnesiui
|