|
|
Objavljeno na 7. 11. 2018 10:05:15
|
|
|

BBS ali spletne strani pogosto dovolijo le ti, da vidiš to stran ali preneseš ta vir, pred nekaj dnevi sem obiskal strežnik nginx, kako implementirati ta nadzor datotek, z uporabo x-sendfile.
1. Kaj je X-Sendfile?
X-Sendfile je mehanizem, ki posreduje zahteve za prenos datotek iz zadnje aplikacije na sprednji spletni strežnik za obdelavo, kar lahko bistveno izboljša učinkovitost strežnika, saj odstrani pritisk zalednega programa za branje in obdelavo datoteke za obdelavo pošiljanja, zlasti pri velikih prenosih datotek.
X-Sendfile je implementiran preko posebne HTTP glave: določa naslov datoteke v X-Sendfile glavi, ki jo oglašuje sprednjemu spletnemu strežniku. Ko spletni strežnik zazna to glavo, ki jo pošlje backend, ignorira druge izhode iz backenda in uporabi lastne komponente (vključno z optimizacijami, kot so glave predpomnilnika in ponovne povezave z breakpointi), da datoteko pošlje uporabniku.
Vendar pa je pred uporabo X-Sendfile pomembno razumeti, da to ni standardna funkcija in da jo večina spletnih strežnikov privzeto onemogoča. Različni spletni strežniki imajo različne implementacije, vključno z različnimi formati glav X-Sendfile. Če je napačno konfigurirana, lahko uporabniki prenesejo datoteko z 0 bajti.
Uporaba X-Sendfile omogoča prenos datotek iz ne-spletnih imenikov (npr. /root/), tudi če je datoteka onemogočena pod zaščito .htaccess.
Različni spletni strežniki izvajajo različne HTTP glave
Glava SENDFILE | Uporabljeni WEB strežnik | | X-Sendfile | Apache, Lighttpd v1.5, Cherokee | | X-LIGHTTPD-send-file | Lighttpd v1.4 | | X-Accel-Preusmeritev | Nginx, Čerokezi |
Slabost uporabe X-SendFile je, da izgubiš nadzor nad mehanizmom prenosa datotek. Na primer, če želite po prenosu datoteke izvesti določena dejanja, na primer dovoliti uporabniku, da datoteko prenese le enkrat, ta X-Sendfile tega ne bo mogel, ker php skripta v ozadju ne ve, ali je prenos uspešen.
2. Kako uporabljati NGINX?
Nginx podpira to funkcijo privzeto in ne zahteva nalaganja dodatnih modulov. Le da je implementacija nekoliko drugačna, HTTP glava, ki jo je treba poslati, je X-Accel-Redirect. Poleg tega morate v konfiguracijski datoteki nastaviti naslednje nastavitve
notranje pomeni, da je do te poti mogoče dostopati le znotraj Nginxa in je brskalnik ne more neposredno dostopati, da bi preprečil nepooblaščene prenose.
3. Kako uporabljati PHP programe?
Če dodate glavo X-Accel-Redirect, bo uporabnik prenesel datoteko pod pot /game. Naš nadzor nad dovoljenji datotek je implementiran.
Uradni uvod v dokumentacijo:Prijava do hiperpovezave je vidna.
|
Prejšnji:Ljubezen, poroka in družina, prva polovica meseca + 18. junijNaslednji:CF je prva perspektiva celotnega omrežja, ki se lahko za en mesec samousmeri in stabilizira
|