Webszerver telepítése az Nginx + MySQL + PHP5 + APC + Spawn_FastCGI használatával [1. rész: Prezentáció]

Nem régen, most ezt említettük DesdeLinux (minden szolgáltatása) működik GNUTransfer.com szerverek. A blog sokat fejlődött a sebesség, a folyékonyság szempontjából, még akkor is, ha a (miután az UsemosLinux összeolvad) naponta több mint 30.000 látogatás (csaknem 200 felhasználó csatlakozott egyszerre). Hogyan lehet jó szerverteljesítményt elérni ilyen forgalom mellett is?

Jelenleg a Justice (VPS, ahol a blog és más szolgáltatások találhatók) 3 GB RAM-mal rendelkezik, azonban kevesebb, mint 500 MB kerül felhasználásra, ez a használható szoftver megfelelő megválasztásával és megfelelő konfigurációjával lehetséges. Például az Apache kétségtelenül nagyszerű a világon, az első számú a tárhely terén, de éppen ezért az Apache nem mindig a legjobb megoldás. Ha nagy a forgalom és a szerver hardvere nem igazán nagy (pl. 1 vagy 8 GB RAM), akkor az Apache túl sok RAM-ot fogyaszthat, így a szerver bizonyos időpontokban túl sokáig tart, amíg reagál, vagy ami még rosszabb, hogy webhelyünk offline állapotban van elégtelen források. Ezért választjuk sokan az Nginx-et az Apache helyett.

nginx:

A cikkben már korábban elmondtuk az Nginx-ről Nginx: Az Apache érdekes alternatívája, ott elmondtuk, hogy ez egy webszerver, mint például az Apache, a LightHttpd vagy a Cherokee, de az Apache-hoz képest kiemelkedik teljesítményével és alacsony hardverfogyasztásával, éppen ezért sok nagy webhely, mint például a Facebook, a MyOpera.com, a DropBox vagy akár a WordPress A .com az Nginxet használja Apache helyett. A Linux világában DesdeLinux Nem ez az egyetlen, aki Nginxet használ, ha jól tudom, az emsLinux és a MuyLinux is használja :)

A Nginx-szel kapcsolatos személyes tapasztalataim több évre nyúlnak vissza, amikor szükségből az Apache könnyű alternatíváit kezdtem keresni. Ekkor az Nginx a 0.6-os verziót választotta, és kompatibilitása a PHP-ben készített nagy igényű webhelyekkel nem volt a legoptimálisabb, azonban ma a 0.9-es verziótól kezdve (v1.2.1 elérhető a Debian Stable-en, v1.4.2 elérhető az ArchLinuxon) sokat fejlődött, olyannyira, hogy az Nginx + PHP megfelelő konfigurálásával és egyesítésével minden varázslatként fog működni.

Ebben az oktatósorozatban Az Nginx 1.2.1-2.2 verzióját fogom használni, elérhető a Debian Stable repókban (Wheezy).

PHP5:

A PHP, az a programozási nyelv, amellyel ma sok webhely (és CMS) dolgozik, véleményem szerint a család fekete báránya. Más szavakkal, személyes tapasztalataim szerint nagy oldalak, nagy mennyiségű látogatással, sok lehetőséggel, funkcióval stb., Ha egy ilyen oldal PHP-ben készül, akkor több erőforrást fog felemészteni, mint például egy hasonló webhely, például az RoR-ben. Tapasztalatom az, hogy emberek, a PHP egy hatalmas erőforrássárkány, a PHP + Apache elegendő ahhoz, hogy száz és száz MB RAM-ot lenyeljen valódi szükség nélkül.

Egyszerűen ez az oka annak, hogy ne használjunk RoR-t, Django-t vagy valami mást DesdeLinux (a blog, zászlóshajónk) működik a WordPress-szel, egy PHP-vel fejlesztett CMS-sel, ami annyi kényelmet kínál számunkra, hogy egyszerűen nem tervezünk rövid vagy középtávon változtatni rajta, őszintén szólva a WordPress, még ha nem is tökéletes, arra szolgál, amire szükségünk van, és talán többet is.

A PHP-t illetően ezekben az oktatóanyagokban a PHP 5.4.4-14 verzió elérhető a Debian Wheezy-n (stabil)

Spawn_fastcgi:

Ez mondhatni az, ami összeköti az Nginx-et a PHP-vel, vagyis akkor is, ha telepítve van a PHP5 csomag, ha nincs telepítve és futtatva a Spawn_FastCGI, a PHP-ben megnyitásakor a böngésző letölti a fájlt, ne mutassa meg nekik, hogy a .php be van programozva, mert a szerver nem tudja, hogyan dolgozza fel a .php fájlokat, ezért elengedhetetlen a Spawn_FastCGI telepítése és konfigurálása.

Ha Apache-t használunk, valami olyan egyszerű, mint a libapache2-mod-php5 csomag telepítése, de mivel az Nginx-et használjuk, helyette telepítenünk kell a spawn-fcgi csomagot. Ezenkívül az oktatóanyagban elmagyarázom, hogyan készítsünk hozzá egy kezdeti szkriptet az /etc/init.d/ fájlban, hogy kényelmesebb módon vezérelhessük.

MySQL:

Ez lehet a nagy kérdőjel, vagy egyesek számára az ellentmondásos hang. Sokan, akiket ismerek, felteszik nekem a kérdést: miért a MySQL-t használom, és nem a MariaDB-t?

A probléma egyszerűen az, hogy jelenleg nincs elég időm arra, hogy a MySQL-ről a MariaDB-re való migrációt csináljak, aminek elméletileg mindenki számára átláthatónak, mindennel 100%-ban kompatibilisnek kell lennie, de ez... Mondtam, elméletben. Abban az időben kezdtem el a költöztetést DesdeLinux egyik VPS-ről a másikra hátra kellett hagynom az Apache-t, és az Nginxet használnom, ez különböző konfigurációs fájlokat, különböző VHost deklarálási módokat, a szerver és szolgáltatásainak telepítését és konfigurálását a nulláról foglalta magában, akkoriban nem tudtam újabb feladatot hozzáadni a listát is, és hogy őszinte legyek, az Apache-t Nginx-re cseréltem, mert az Apache nem elégítette ki az igényeimet, azonban a MySQL eddig 100%-ban megfelel az igényeimnek, nem látom okát, hogy növeljem a munkaterhelésemet olyasvalami változtatással, ami már működött technikailag jó nekem.

Miután elmagyarázta, miért nem telepítettem a MariaDB-t, magyarázza el azt is, hogy mivel a weboldalak túlnyomó többségének szüksége van egy adatbázisra a működéséhez, mert ott tárolnak sok információt (vagy szinte az összeset). Van, aki kedveli a Postgre-t, vagy valaki mást, ebben az oktatósorozatban elmagyarázom, hogyan telepítse a MySQL-t, és minden webhelyhez külön felhasználókat állítson be.

La A MySQL verzió, amelyet használni fogok, a v5.5.31

APC-k:

Az APC a PHP optimalizálója (nagyon egyszerűen magyarázható). Lehetővé teszi számunkra a megfelelő konfigurációt, hogy a PHP-feldolgozás jobban működjön, és hogy a szerver válaszai gyorsabbak legyenek.

Vannak olyan alternatívák, mint a memcache, de mindig APC-t használtam, és nagyon kedvező eredményeket értem el. Azt javaslom, hogy olvassa el ezt a cikket angolul: Az APC és a Memcache összehasonlítása helyi tartalmi gyorsítótárként

Az oktatóanyagban a verzióját fogom használni PHP-APC v3.1.13-1 elérhető a Debian Stable repókban is.

Összefoglalva:

A webszerver konfigurálásának ilyen módja nem a legoptimálisabb, és még kevésbé, például sokan a Varnish-t fogják ajánlani, amely az általam olvasottakból igazi csodákat tesz, mert minden vagy szinte minden gyorsítótárban van, de esetünkben nem szükség van arra, hogy a webhely 100% -a mindig gyorsítótárban legyen, mert nem akarjuk, vagy nem kell ilyen szélsőséges helyzetbe kerülnünk. Pontosítom azonban, amint fentebb mondtam: "amennyire olvastam", én személy szerint a mai napig nem használtam a lakkot, ezért nem tudok 100% -ban objektív véleményt mondani.

Ez egy olyan oktatóanyag-sorozat lesz, amelyben megmutatom, hogyan kell telepíteni egy olyan webszervert, mint amilyennek ez a perce üzemeltetett. DesdeLinux (blog, fórum, beillesztés stb.). A blogot naponta 30.000 200 látogatja, közel 500 felhasználó éri el egyszerre, és a RAM mégsem haladja meg az 3 MB fogyasztott mennyiséget, van, akinél ez túlzott fogyasztás lehet, de... na, 500 GB RAM-unk van, kevesebb mint XNUMX MB (amiben benne van FTP szolgáltatás, SSH stb.) tényleg jó, igaz? 🙂

Az összes „varázslatot” nem csak az Nginx + Spawn_FastCGI + APC végzi, a blog gyorsítótár-rendszerünk nagyon jól van konfigurálva, és az Nginx szabályai pontosak, ez még akkor is teszi a blogot, ha sok forgalmi folyamat érkezik, sokkal kevesebb PHP-t, mint amit szokásos, mivel sok már tárolt. Ha nagy keresletű webhelye van, és erőforrásproblémái vannak, erősen ajánlom, hogy tanulmányozza meg, melyik gyorsítótár-rendszer működik a legjobban az Ön számára, melyik felel meg legjobban az Ön igényeinek.

Remélem, érdekesnek találja ezeket az oktatóanyagokat, mindegyikben megpróbálok mindent átfogóan, részletesen és a lehető legegyszerűbben elmagyarázni.

Üdvözlet


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Bruno cascio dijo

    Nagyon jó és tiszta! Gratulálok neked!

    1.    KZKG ^ Gaara dijo

      Köszönöm

  2.   Christopher castro dijo

    Nagyon jó bemutató.

    Ami kételyekkel tölt el, az az, hogy hogyan konfigurálták az e-mail szervert.

    1.    KZKG ^ Gaara dijo

      A MailServer valami különálló, vagyis semmi köze a webkiszolgálóhoz, ahogyan tudod 🙂

      Azonban nagyon régen úgy döntöttem, hogy nem bonyolítom magam a MailServerrel, az iRedMail (MySQL, LDAP és Postgre támogatása) használatát választottam, és a konfigurációs fájlokban hozzáadott megfelelő beállításokkal és részletekkel minden rendben működik.

  3.   rots87 dijo

    Tetszik a cikk, várom a cikksorozatot

    1.    KZKG ^ Gaara dijo

      Köszönöm, remélem, hogy hétfőn vagy kedden elhozom a következőt, az Nginx telepítésével és konfigurálásával fog foglalkozni.

  4.   aca dijo

    Nagyon jó, megfelelő konfiguráció, nehéz megtalálni, a tényezők közötti kompromisszum olykor szinte megoldhatatlan, én is jártam nginxbe egy ideje, később pedig a mariadb-be (nemrég, azt hiszem, egy évvel ezelőtt).

    // amint említettem, jó lenne, ha felvetnéd a chroot lehetőségét, és használnád a szintén proxy_cache_path utat. A foglalat összehasonlítása (amennyiben lehetséges) a porttal. és jól meghatározza a gyermekek / kos számát.

    Üdvözlet

    1.    KZKG ^ Gaara dijo

      Köszönöm a megjegyzést 🙂
      Igen, persze, nagyon jó lenne ketrecbe rakni az Nginx-et, hogy elkülönüljön a rendszer többi részétől. Ezt a lehetőséget ezekben az oktatóanyagokban nem vettem figyelembe, meglátom, mit tehetek. A proxy_cache_path-ról soha nem használtam, olvasok róla egy kicsit, hogy lássam, hogy megy.

      A szálak számát (min & max) illetően az Nginx konfigurációban nyilvánvalóan meg van határozva, az Nginx bejegyzésben sokat fogok beszélni a .conf fájlról 😉

      Ismét köszönöm megjegyzését.

  5.   MSX dijo

    Ez a típusú HowTos teszi a webet igazán erőteljessé a számítástechnikusok számára, mivel rengeteg órányi kutatást és tesztelést takarít meg nekünk, amíg végül nem döntünk a megfelelő lehetőségről, köszönjük szépen!

    Egy kérdés, hogy ez fut-e a Debianon? Milyen verziójú operációs rendszer és csomagok?

    Üdvözlet!

    1.    KZKG ^ Gaara dijo

      Köszönöm.
      Valóban, azok a webhelyek, amelyek jelentést tesznek, megismétlik és megismétlik a híreket, már túl sok ... amire szükségük van olyan webhelyekre, amelyek oktatóanyagokat helyeznek el, erre van szüksége a webnek!

      Igen, Debian Wheezy (jelenlegi Stable), a csomagok verziói ott vannak a post bejegyzésben

  6.   eliotime3000 dijo

    Kiváló megjegyzés. Lássuk, csinálok-e egyfajta hibát a ZPanel X-szel, és mellesleg a Debian Wheezy-ben manuálisan hajtom végre a telepítést.

  7.   Federico Antonio Valdes Toujague dijo

    Menj előre KZKG ^ Gaara !!!, hogy az igazság legjobb kritériuma a gyakorlat, és van tapasztalatod arról, amit írsz. Szakmai és működő weboldal. Major League Baseball, haver.

    1.    eliotime3000 dijo

      Ez igaz. Továbbá, amikor elkezdtem játszani a webkiszolgálókkal, amelyeket a Windows rendszerbe telepítettem, az az igazság, hogy az Apache erőforrás-fogyasztást mutat, ha WordPress-t használ (a Drupalban az erőforrások felét fogyasztotta).

  8.   szállítás dijo

    Úgy gondolom, hogy a Nginx részéről ez a bemutató jól fog jönni nekem. Most egy Nginx, php, Varnish és MariaDB szervereket akarok telepíteni. De természetesen el kell kezdened, és a lustaság sokat tehet a szerverekkel való harcban, és jelenleg elégedett vagyok azzal a tipikus lámpával és memcache-mel, amely xDD-vel rendelkezik.

    A köszöntés.

  9.   auroszx dijo

    Remek, csak egy ilyen jól jönne 🙂 Egy másik várom.

  10.   Ivan Gabriel Sosa dijo

    Követünk. Jelenleg a webszerverek világában indulunk. Kettőt vettünk a Hostinger-től, és egy barátunk segített nekünk a nulláról konfigurálni (PHP, MySQL, Apache). Ez az egyetlen olyan kombináció, amelyet a Linuxban fognak használni, amely platformon január óta vagyok.
    De nagyon érdekelt ez a téma. Egészségére!

  11.   Jose Manuel dijo

    Soha nem telepítettem webkiszolgálót, de ha meg akarom csinálni, kérdés, hogy az oktatóanyagok megértéséhez és a telepítéshez szükséges szint magas-e, vagy alapvető ismeretekkel kipróbálhatom? Előre is köszönöm.

    1.    eliotime3000 dijo

      Az igazság az, hogy nem kell sok tudás ahhoz, hogy kezelni tudjunk egy adatbázis-kiszolgálót. Aki már kipróbálta ezt az élményt, elmondja neked.

  12.   Mauritius dijo

    Helló, nagyon jó, amit kezdeni fog ezzel a bejegyzéssorozattal.

    Nemrégiben telepítettem az Nginx + Php Fastcgi + Mariadb szoftvert. Nginx.

    Mindezt az Archlinux-ban tettem, mert ez a terjesztés az én szemszögemből nézve egyetlen, amely nem hoz annyi finomságot, mint a többi. Ketrecbe zárt környezetbe tettem, és sok kellemetlenséget okozott, hogy tökéletesen működjek.

    Most tökéletesen működik. Bár érdekel a véleményetek megismerése a gyermekek és az apa folyamatairól, annál jobb, minél több tippet ad nekem.

    Mindez csak gyakorlásra szolgál.
    A berendezés 4 GB DDR2 RAM-mal és 2 GHz-es Core 2.4duo processzorral rendelkezik.

    Üdvözlet és várom a sorozat következő bejegyzéseit.

  13.   izom dijo

    200 felhasználó csatlakozik egyszerre?
    Csak a nap bizonyos szakaszaiban, igaz? Mert különben meghaladná azt a napi 30.000 XNUMX látogatást.

    1.    KZKG ^ Gaara dijo

      Igen, természetesen nem mindig van 200 ember online, ilyenkor majdnem 40 van, mert még korai, néhány óra múlva meghaladja a 100-at.

  14.   vadász dijo

    A móka kedvéért csak a munkaállomásomon váltottam a könnyűről az nginx-re (jelenleg a Symfony2), innen vettem a konf-t [1], nagyon egyszerű.

    [1] http://ihaveabackup.net/2012/11/17/nginx-configuration-for-symfony2

  15.   Apr4xas dijo

    Várva ennek folytatását 😀

    1.    KZKG ^ Gaara dijo

      A héten közzé kell tennem, köszönöm, hogy elolvastál minket 🙂

      1.    egészség dijo

        és? sok hiányzik?

  16.   Dékán dijo

    Jó bejegyzés ...

  17.   IVÁN NOEL dijo

    JÓ ESTÉT.
    AZ ISKOLAI PROJEKTEK MEGHATÁROZÁSAI MEGHATÁROZNÁK, HOGY HAGYNAK, HOGY AZ ORACLE MV VIRTUALBOX-ban TELEPÍTEM az NGINX-et az 5.4 OPENBSD-be, hogy képes legyek használni a PHP-t, a MySQL-t, másokat, NADAMAS-okat, amelyekre a fentiekre vonatkozóan nem tudtam találni információkat, PROBLÉMA FELTÉTELEM.