fastcgi interfész

Ez azt jelenti, hogy a FastCGI futó program az Apache web-szerver és futtatni lighttpd és fordítva.

FastCGI kiküszöböli a sok korlátait CGI programokat. CGI programok, a probléma az, hogy újra kell indítani a web-szerver minden kérés, ami a termelékenység csökkenése.

FastCGI megszünteti ezt a korlátozást, miközben a folyamat fut, és halad a kéréseket, amelyek folyamatosan futó folyamatokat. Ez lehetővé teszi, hogy ne tölteni az időt, hogy hozzon létre (fork ()) az új folyamatokat.

Míg a CGI programok csatlakozik a szerverhez keresztül pipe'y, FastCGI folyamatok használják Unix-Domain-socket vagy TCP / IP kommunikáció a szerver. Ez a következő előnyökkel rendelkezik a hagyományos CGI programok: FastCGI programok indíthatók nemcsak ugyanazon a szerveren, hanem a hálózat bármely pontján

LightTPD magában foglalja a belső FastCGI terhelés elosztó, amely felhasználható az elosztó több FastCGI szerverek. Szemben más megoldásokkal csak FastCGI folyamat kell a klaszter, hanem a web-szerver. Ez lehetővé teszi a használatát FastCGI folyamat rezursov nagyobb, mint, például, terheléskiegyenlítő + apache + mod_php.

Ha összehasonlítjuk a FastCGI az Apache + mod_php meg kell fizetnie a figyelmet arra a tényre, hogy a FastCGI további biztonságot nyújt, hogyan kell futtatni a FastCGI folyamat alatt a felhasználó más, mint a felhasználó web-szerver, és szintén a chroot'e chroot'a eltér a web-szerver .

FastCGI támogatás lighttod keresztül nyújtott fastcgi (mod_fastcgi) modul, amely 2 opció a konfigurációs fájlban:

fastcgi.debug értéke 0-65535 kiadására a hibakeresési szintet FastCGI modult. Abban a pillanatban, mi csak 0 vagy 1. Illessze a 1 számára, hogy hibakeresést, és 0 letiltja. fastcgi.server

Szerint a modul küldjük FastCGI hívásokat. Minden fájl kiterjesztését küldhet saját FastCGI szerver. Terheléselosztás végre számának megadásával FastCGI szerver egy kiterjesztés.

fastcgi.server szakasz szerkezete:

fájlkiterjesztés vagy előtag (ha elindul egy „/”)

FastCGI protokoll módot. Az alapértelmezett a „reagáló”, szintén „autorizáló” módban.

nem kötelező, és lehet benne „enable” (alapértelmezett) vagy a „letiltás”. Ha engedélyezi a szerver először ellenőrzi a helyi fájlt server.document root könyvtárat és 404-es (nem található), ha nincs ilyen fájl létezik. Ha le van tiltva, akkor a szerver továbbítja a kérést a FastCGI felület nélkül, ezt az ellenőrzést.

Ha megad egy bin-path:

Több kiterjesztések ugyanazon fogadó

Példa előtaggal:

Példa a „autorizáló” üzemmódban:

Megjegyezzük, hogy ha a „docroot” határozza meg, akkor annak értéke lesz használva a változó DOCUMENT_ROOT és SCRIPT_FILENAME FastCGI szerver.

FastCGI bővítmény automatikus terhelés megosztását több szerver FastCGI.

Ahhoz, hogy megértsük, hogy a terheléselosztás, akkor engedélyezze az opciót fastcgi.debug és kap a teljesítmény, mint ez:

Ez a kimenet, ábrán porodeny FastCGI a helyi gépen. A következő magyarázat is igaz távoli kapcsolatok.

  • IP, port, unix-foglalat (ebben az esetben üres)
  • a helyi, mutató (0 - nincs kitéve, 1 - fut.)
  • hatóanyag (loading)
  • PID

Mint látható egy lista minden alkalommal elrendelt zagruzuki területén

Amikor az új kapcsolatokat a kérés, kijelöli az első mutatót FastCGI folyamat (az egyik legkevésbé terhelés), terhelési érték lépteti 1 (van proc.) És a lista újra.

Ha FastCGI kérelmet végződik, vagy a kapcsolat megszakad, FastCGI proc terhelés kisebb 1-gyel és a lista ismét (release proc.)

Ez a viselkedés vesz egy kis kódot, nagyon hatékony, és lehetővé teszi, hogy fastcgi-szerver ravnozagruzhenno, akkor is, ha különböző CPU.

Mivel 1.3.8 lighttpd létrehozhat prostsessy kérésre, ha meghatározható bin-path, és FastCGI folyamatok helyi futtatását.

Ha azt szeretnénk, hogy elindította legalább egy FastCGI folyamat és több információt minden lekérdezést, akkor min-procs és max-proc.

Az új eljárás indul, amint az átlagos kérelmek száma várja eljárással egy folyamat túllépi a maximális terhelés-per-proc.

Idle-timeout paraméter határozza meg, hogy milyen hosszú a fastcgi folyamat kell várni egy új kérelmet, mielőtt az elfüggönyözött munkája

Adaptív ívás még egy új funkció, és viselkednek instabil. Itt vannak felsorolva több lehetőséget, hogyan kell ellenőrizni az új folyamatok:

„Max-terhelés-per-proc” => 1, ha működik az Ön számára, akkor minden rendben van.

Ha nem tesz min-procs == max-procs.

PHP, akkor is használhatja:

Ez létrehoz egy aljzatból és hagyja PHP létrehozásához 384 folyamatot.

Ha nem szeretné, hogy kezelni fastcgi lighttpd folyamatokat, távolítsa el a bin-útvonalat és a spawn-fcgi létrehozni FastCGI folyamat maga

Ha már van egy működő PHP egy web-szerver, fut egy rövid script, hogy egyszerűen tartalmaz

és nézd meg a sort, amely tartalmazza a hívás konfigurálása. Használhatja ezek alapján összeállításához.

Először el kell távolítani a with-apxs opciót. --with- apxs2 és azok, amelyek a fordítás után is támogatják az Apache. Add hozzá a következő három lehetőség közül a PHP támogatja a FastCGI:

Fordítása után instralyatsii ellenőrizze, hogy a PHP támogatja FastCGI, teljesítményét:

Közlemény (cgi-fcgi).

Fontos, hogy a php.ini tartalmazza:

Egyébként PHP_SELF nem fog a helyes értéket.

Verziótól kezdődően 1.3.6 lighttpd maga is létrehozhat FastCGI folyamat szükség esetén:

PHP két speciális környezeti változók számának szabályozását munkavégző folyamat alatt futó vezérlők a felügyeleti eljárás (PHP_FCGI_CHILDREN), valamint a kérelmek száma, amely a munkafolyamat folyamat befejezését.

Javítani bezopastnost futó folyamatokat, csak akkor kell, hogy adja át a szükséges környezeti változókat a FastCGI folyamat.

Létrehozása FastCGI folyamat közvetlenül a web-szerver a következő hátrányai

  • FastCGI folyamat csak akkor indítható, lokálisan
  • jogodban áll, és hogy a web-szerver
  • Ez egy szűkebb bázis-könyvtár, mint a web-szerver

Amint elkezdi használni egy külön FastCGI szerver eltávolítani a terhelést a web-szerver, akkor az ellenőrzés a folyamat külső FastCGI programok, mint a spawn-fcgi.

kapsz-fcgi működtetéséhez használt FastCGI folyamat a környezet, hogy azt a felhasználó-azonosító, group-id és megváltoztatni a root könyvtárban (chroot).

A kényelem legyen ispolzvat wrapper script, hogy vigyáz az összes lehetőséget. Ez a szkript tartalmazza a készítmény lighttpd, - spawn-php.sh.

A szkript egy sor konfigurációs változók, amelyeknek meg kell figyelni:

Miután megadott értékeket, hogy szükség van, akkor fuss spawn-php.sh:

Ha lát egy „gyerek szült sikeresen: PID:” php jelenti a folyamat fut sikeresen. Meg kell látni őket a folyamatok listáját:

A folyamatok számát, hogy PHP_FCGI_CHILDREN + 1. Ebben az esetben az eljárás 6925 mester slave'ov párhuzamosan kötve. A több munkavégző folyamat meghatározott PHP_FCGI_CHILDREN. Munkafolyamat automatikusan kilép után PHP_FCGI_MAX_REQUESTS keresett, mert memóriavesztés előfordulhat PHP.

Ha fut a script root, php folyamatok fog működni a felhasználói azonosító és GrouplD csoport. Egyébként php folyamatok futnak a felhasználó jogosultságával, aki futott a forgatókönyvet.

Mivel a szkript lehet futtatni bizonytalan küszöbszint, vagy akár közvetlenül a parancssorból, akkor törli a környezeti változókat, mielőtt elkezdi a folyamatot. ALLOWED_ENV minden külső környezeti változók rendelkezésre kell állniuk php-folyamatot.

Perl, telepíteni kell FCGI modul CPAN.

Kapcsolódó cikkek