Fájlok küldése nginx-el

A Nginx-ot gyakran csak fájlok feltöltésére használják. Például a fájl hosting. Mit kell keresnem a Nginx optimalizálására a nagy fájlok kimenetéért?

Mit kell beállítanom?

Ahogy a webszerver általában működik, fájl átvitelkor:
  1. megnyitja a forrásfájlt (lemezen)
  2. a célfájl megnyílik (hálózati kapcsolat)
  3. az adatblokkot elolvassa, átmásolja a pufferbe és elküldi a rendeltetési helyre a fájl végéig
  4. mindkét fájl bezáródik

tcp_nopush

Az irányelv engedélyezi vagy letiltja a TCP_NOPUSH opciók használatát a FreeBSD vagy a TCP_CORK Linux alatt. A "tcp_nopush on" használható sendfile () esetén, nginx ebben az esetben az adatokat teljes csomagokban nyomtatja ki. Miután a teljes lekérdezés feldolgozása, TCP_CORK / TCP_NOPUSH ki, így a részleges kisülés az utolsó csomag.

TCP_NODELAY

Ez lehetővé teszi, hogy az irányelv vagy megtiltja TCP_NODELAY opció (az átmeneti állapot a vegyület fenntartó). Mielőtt folytatnánk kapcsolatok keepalive nginx kimenetek adathívásokhoz writev () elég nagy adagokban, hogy kitöltse a csomagot ( „postpone_output 1460”), így adatot kell menni haladéktalanul TCP_NODELAY nincs szükség. De az utolsó hiányos csomag esetében kissé késhet, ha a kapcsolat nem záródik le. Ehhez engedélyeznie kell a TCP_NODELAY engedélyezését:

Ez az opció lehetővé teszi a közvetlen leolvasást az operációs rendszer gyorsítótárának elérése nélkül. Ez nagy fájloknál hasznos, mert az operációs gyorsítótár nem hatékony. Az opció lehetővé teszi a minimális méret beállítását a közvetlen olvasási mód engedélyezéséhez:

Mivel statikus fájlokkal foglalkozunk, és fennáll annak a lehetősége, hogy ugyanaz a felhasználó többször kérheti ugyanazt a fájlt, engedélyeznie kell az ügyfél gyorsítótárát. Ez úgy érhető el, hogy beállítja a "max lejárati" opciót, amely elküldi a szükséges fejléceket a böngészőnek:

limit_rate

# A visszajelzés sebességét 196Kbps-ra korlátozzuk

Ez az opció csak egy lekérdezésen belül működik, nem pedig az ügyfélen. Ha korlátozást kíván adni az ügyfélnek, akkor használjon egy változót:

A Nginx-ben is beállítható a visszahúzó küszöbérték, amely után a korlátozás hatályba lép. A streaming média számára is van értelme (ebben az esetben az első meghatározott rész korlátozás nélkül adható meg):

# A korlátozás sebessége 1Mb után lesz feltöltve

A nagyon gyakran megkívánt fájloknak van értelme a gyorsítótárban tárolni a memóriában.

A legfontosabb

Egy kis beállítás kifejezetten a Nginx fájlok feltöltéséhez lehetővé teszi az egyes kiszolgálók erőforrásainak jobb kihasználását.

Fájlok küldése nginx-el

Kapcsolódó cikkek