Si të instaloni një server në internet me Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [Pjesa e Parë: Prezantimi]

Jo shumë kohë më parë kemi përmendur që tani DesdeLinux (të gjitha shërbimet e tij) po ekzekutojnë Serverat GNUTransfer.com. Blog-u është përmirësuar shumë për sa i përket shpejtësisë, rrjedhshmërisë, edhe kur nuk kemi më (pasi bashkohen UsemosLinux) më shumë se 30.000 vizita çdo ditë (pothuajse 200 përdorues të lidhur njëkohësisht). Si të arrijmë një performancë të mirë të serverit edhe me këtë vëllim trafiku?

Aktualisht Justice (VPS ku është blog-u dhe disa shërbime të tjera) ka 3 GB RAM, megjithatë harxhohet më pak se 500 MB, kjo është e mundur me zgjedhjen korrekte të softuerit që do të përdoret dhe një konfigurim adekuat të tyre. Për shembull, Apache është padyshim një i shkëlqyeshëm në botë, Nr.1 ​​kur bëhet fjalë për pritjen, por pikërisht për këtë arsye Apache nuk është gjithmonë opsioni më i mirë. Kur trafiku është i lartë dhe pajisja e serverit nuk është me të vërtetë e madhe (Psh: 8 ose 16 GB RAM) Apache mund të konsumojë shumë RAM duke e bërë që serveri në kohë të caktuara të marrë shumë kohë për t'u përgjigjur, ose më keq, se faqja jonë është jashtë linje për burime të pamjaftueshme. Kjo është arsyeja pse shumë prej nesh zgjedhin Nginx para Apache.

Nginx:

Ne tashmë ju thamë për Nginx më herët në artikull Nginx: Një alternativë interesante për Apache, atje ju thamë që është një server në internet si Apache, LightHttpd ose Cherokee, por që krahasuar me Apache dallohet për performancën e tij dhe konsumin e ulët të pajisjeve, pikërisht për këtë arsye shumë faqe të mëdha si Facebook, MyOpera.com, DropBox apo edhe WordPress .com përdor Nginx në vend të Apache. Në botën e Linux pasiLinux nuk është i vetmi që përdor Nginx, me sa di unë, emsLinux dhe MuyLinux gjithashtu e përdorin atë

Përvoja ime personale me Nginx daton disa vjet më parë, kur nga nevoja fillova të kërkoja alternativa të lehta për Apache. Në atë kohë Nginx ishte në versionin 0.6 dhe pajtueshmëria e tij me faqet me kërkesë të lartë të bëra në PHP nuk ishte më optimale, megjithatë në ditët e sotme nga versioni 0.9 e tutje (v1.2.1 i disponueshëm në Debian Stable, v1.4.2 i disponueshëm në ArchLinux) është përmirësuar shumë, deri në pikën që me një konfigurim dhe bashkim të duhur të Nginx + PHP gjithçka do të funksionojë si një sharm.

Në këtë seri mësimore Do të përdor versionin Nginx 1.2.1-2.2, i disponueshëm në repos Debian Stable (Wheezy).

PHP5:

PHP, ajo gjuhë programimi me të cilën punojnë shumë prej faqeve (dhe CMS) sot, është për mendimin tim, delet e zeza të familjes. Me fjalë të tjera, në përvojën time personale, faqe të mëdha, me një vëllim të madh të vizitave, me shumë opsione, funksione, etj., Nëse një faqe e tillë është bërë në PHP do të konsumojë më shumë burime sesa një faqe e ngjashme e bërë, për shembull, në RoR. Përvoja ime ka qenë që njerëzit, PHP është një dragua i madh burimesh, PHP + Apache është e mjaftueshme për të gëlltitur qindra e qindra MB RAM pa ndonjë nevojë reale.

Arsyeja për të mos përdorur RoR, Django ose dikë tjetër është thjesht që DesdeLinux (blogu, flamuri ynë) punon me WordPress, një CMS i zhvilluar me PHP që na ofron kaq shumë, shumë komoditete, saqë thjesht nuk mendojmë ta ndryshojmë atë në afatshkurtër ose afatmesëm, sinqerisht, WordPress edhe kur nuk është i përsosur na shërben për ato që na duhen dhe ndoshta më shumë.

Lidhur me PHP, në këto mësime do të përdor Versioni PHP 5.4.4-14 në dispozicion në Debian Wheezy (e qëndrueshme)

Pjell_FastCGI:

Kjo mund të thuhet se është ajo që lidh Nginx me PHP, domethënë, edhe nëse ata kanë të instaluar paketën PHP5 nëse nuk kanë të instaluar dhe ekzekutuar Spawn_FastCGI kur hapin një faqe në PHP, shfletuesi do të shkarkojë skedarin, nuk do t'u tregojë asgjë .php është programuar sepse serveri nuk di të përpunojë skedarët .php, prandaj është thelbësore instalimi dhe konfigurimi i Spawn_FastCGI.

Nëse përdorim Apache do të ishte diçka aq e thjeshtë sa instalimi i paketës libapache2-mod-php5, por meqenëse përdorim Nginx do të duhet të instalojmë paketën spawn-fcgi në vend. Gjithashtu, në tutorial do të shpjegoj se si të krijoni një skenar fillestar për të në /etc/init.d/ në mënyrë që ta kontrolloni atë më lehtësisht.

MySQL:

Ky mund të jetë pikëpyetja e madhe ose ndoshta, për disa, shënimi i paqëndrueshëm. Shumë që di unë do të më bëjnë pyetjen: pse të përdor MySQL dhe jo MariaDB?

Gjëja është thjesht që unë nuk kam kohë të mjaftueshme për t'iu përkushtuar vetes për të bërë një migrim në këtë moment nga MySQL në MariaDB, një migrim që në teori duhet të jetë transparent për të gjithë, 100% në përputhje gjithçka, por kjo është ... siç thashë , në teori. Në kohën kur fillova të zhvendosja shërbimet FromLinux nga një VPS në tjetrin duhet të lija Apache pas dhe të përdorja Nginx, kjo nënkuptonte skedarë të ndryshëm konfigurimi, mënyra të ndryshme për të deklaruar VHosts, instalimin dhe konfigurimin nga e para e serverit dhe shërbimeve të tij, unë mund të jo në atë kohë shtoj një detyrë tjetër në listë, dhe gjithashtu dhe duke qenë i sinqertë, unë ndryshova Apache për Nginx sepse Apache nuk i plotësonte nevojat e mia, megjithatë, MySQL deri më tani plotëson nevojat e mia 100%, nuk shoh arsyet për atë moment unë rrita ngarkesën time të punës duke ndryshuar diçka që tashmë ka punuar për mua teknikisht mirë.

Sapo shpjegova pse nuk e instalova MariaDB, shpjegoni gjithashtu që pasi shumica dërrmuese e faqeve të internetit kanë nevojë për një bazë të dhënash për funksionimin e tyre, sepse aty do të ruhen shumë informacione (ose pothuajse të gjitha). Ka disa që e pëlqejnë Postgre ose dikë tjetër, në këtë seri udhëzimesh do të shpjegoj se si instaloni MySQL dhe konfiguroni përdorues të veçantë për secilën faqe.

La Versioni MySQL që do të përdor është v5.5.31

APC-të:

APC është një optimizues për PHP (shpjeguar shumë thjesht). Na lejon një herë të konfigurojmë siç duhet që përpunimi PHP të funksionojë më mirë, se përgjigjet nga serveri janë më të shpejta.

Ka alternativa si memcache megjithatë, unë gjithmonë kam përdorur APC dhe kam pasur rezultate shumë të favorshme. Unë rekomandoj të lexoni këtë artikull në anglisht: Krahasimi i APC dhe Memcache si memorie e përmbajtjes lokale

Unë do të përdor në tutorial versionin e php-apc v3.1.13-1 gjithashtu në dispozicion në repos Debian Stable.

Duke përmbledhur:

Kjo mënyrë e instalimit të një konfigurimi të serverit në internet nuk është më optimale, larg saj, për shembull shumë do të rekomandojnë Varnish, i cili nga sa kam lexuar bën mrekulli të vërteta sepse gjithçka ose pothuajse gjithçka është e fshehur, por, në rastin tonë nuk duhet 100% e faqes të ruhet gjithmonë sepse ne nuk duam ose kemi nevojë të shkojmë në atë ekstrem. Sidoqoftë, sqaroj, siç thashë më lart: "me sa kam lexuar", unë personalisht nuk kam përdorur Llak deri më sot, kështu që nuk mund t'ju jap një mendim 100% objektiv.

Ky do të jetë një seri udhëzimesh në të cilat unë do t'ju tregoj se si të instaloni një server në internet si ai që aktualisht organizohet nga FromLinux (blog, forum, ngjitje, etj.). Blogu ka 30.000 vizita çdo ditë, pothuajse 200 përdorues që e përdorin atë njëkohësisht, dhe edhe kështu RAM nuk i kalon 500 MB të konsumuara, kjo për disa mund të jetë konsum i tepërt por ... hej, ne kemi 3 GB RAM, më pak se 500 MB (e cila përfshini FTP, SSH, etj) është vërtet mirë? 🙂

E gjithë 'magjia' nuk bëhet vetëm nga Nginx + Spawn_FastCGI + APC, sistemi ynë i memorizimit të blogut është konfiguruar me të vërtetë i mirë dhe rregullat për Nginx janë precize, kjo e bën blogun edhe kur merr një proces të trafikut të madh shumë më pak PHP se sa zakonisht. , pasi ka shumë të memorizuara tashmë. Nëse keni një sit me kërkesë të lartë dhe keni probleme me burimet, unë rekomandoj pa dyshim që të studioni për të parë se cili sistem i memorjes do të funksionojë më mirë për ju, cili do t'i përshtatet më mirë nevojave tuaja.

Shpresoj që ju të gjeni këto mësime interesante, në secilin prej tyre do të përpiqem të shpjegoj gjithçka në një mënyrë gjithëpërfshirëse, të detajuar dhe sa më të thjeshtë të jetë e mundur.

të fala


Përmbajtja e artikullit i përmbahet parimeve tona të etika editoriale. Për të raportuar një gabim klikoni këtu.

27 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Bruno cascio dijo

    Shumë e mirë dhe e qartë! Une ju pergezoj ju!

    1.    KZKG ^ Gaara dijo

      Faleminderit

  2.   Christopher castro dijo

    Tutorial shumë i mirë.

    Ajo që më mbush me dyshim është mënyra se si ata konfiguruan serverin e postës elektronike.

    1.    KZKG ^ Gaara dijo

      MailServer është diçka larg, domethënë nuk ka asnjë lidhje me serverin e internetit siç e dini ju

      Sidoqoftë, shumë kohë më parë vendosa të mos e ndërlikoja veten me MailServer, vendosa të përdor iRedMail (mbështetje për MySQL, LDAP dhe Postgre) dhe me cilësimet dhe detajet e duhura që shtoj në skedarët e konfigurimit, gjithçka funksionon mirë.

  3.   Rots87 dijo

    Më pëlqen artikulli, po pres serinë e artikujve

    1.    KZKG ^ Gaara dijo

      Faleminderit, shpresoj ta sjell një tjetër të hënën ose të martën, do të merret me instalimin dhe konfigurimin e Nginx.

  4.   AKK dijo

    Shumë e mirë, konfigurimi i duhur, është e vështirë për ta gjetur, kompromisi midis faktorëve nganjëherë është pothuajse i pazgjidhshëm, unë gjithashtu shkova në nginx pak kohë më parë dhe më vonë në mariadb (kohët e fundit, mendoj një vit më parë).

    // Siç e përmenda, do të ishte mirë nëse ngritni mundësinë e chroot dhe përdorni proxy_cache_path që është gjithashtu i dobishëm. Gjithashtu krahasimi i prizës (në rastet kur është e mundur) kundrejt portit. dhe të përcaktojë mirë numrin e fëmijëve / dashit.

    të fala

    1.    KZKG ^ Gaara dijo

      Faleminderit për komentin tuaj
      Po sigurisht, do të ishte shumë mirë ta kafshoja Nginx për ta mbajtur atë të veçantë si të tillë nga pjesa tjetër e sistemit, nuk e kisha konsideruar atë mundësi në këto udhëzime, do të shoh se çfarë mund të bëj. Rreth proxy_cache_path, unë kurrë nuk e kam përdorur atë, unë do të lexoj pak në lidhje me të për të parë se si shkon.

      Lidhur me numrin e fijeve (min & max), në konfigurimin Nginx është përcaktuar qartë, në postimin e Nginx unë do të flas shumë për skedarin .conf

      Përsëri, faleminderit për komentin tuaj.

  5.   MSX dijo

    Ky lloj HowTos është ai që e bën uebin me të vërtetë të fuqishëm për shkencëtarët e kompjuterit pasi na kursen me orë të tëra kërkimesh dhe testimesh derisa të vendosim më në fund për opsionin e duhur, falë shumë!

    Një pyetje, a funksionon kjo në Debian? Çfarë versioni të OS dhe paketave?

    Përshëndetje!

    1.    KZKG ^ Gaara dijo

      Ju faleminderit.
      Në të vërtetë, faqet që raportojnë, që përsërisin dhe përsërisin lajmet, tashmë ka shumë ... ato që duhen janë faqet që vendosin udhëzime, kjo është ajo që uebi ka nevojë!

      Po, Debian Wheezy (Stabil i tanishëm), versionet e paketave janë aty në postimin

  6.   eliotime3000 dijo

    Koment i shkëlqyeshëm. Le të shohim nëse bëj një lloj errata me ZPanel X, dhe rastësisht, bëj instalimin manualisht në Debian Wheezy.

  7.   Federico Antonio Valdes Toujague dijo

    Vazhdoni KZKG ^ Gaara !!!, se Kriteri më i Mirë i së Vërtetës është Praktika, dhe ju keni përvojë në lidhje me atë që shkruani. Një faqe interneti profesionale dhe që punon. Major League Baseball, Djalosh.

    1.    eliotime3000 dijo

      Kjo është e vërtetë. Gjithashtu, kur fillova të luaja me serverat e internetit që kam instaluar në Windows, e vërteta është se Apache rritet për sa i përket konsumit të burimeve nëse përdorni WordPress (në Drupal ajo konsumoi gjysmën e burimeve).

  8.   karrocë dijo

    Unë mendoj se për pjesën Nginx ky tutorial do të jetë i dobishëm. Tani dua të instaloj një server me Nginx, php, Varnish dhe MariaDB. Por sigurisht, duhet të fillosh, dhe përtacia mund të bëjë shumë kur bëhet fjalë për të luftuar me serverat dhe për momentin unë jam i kënaqur me llambën tipike dhe memcache që kam xDD.

    Një përshëndetje.

  9.   auroszx dijo

    E shkëlqyeshme, vetëm njëra nga këto do të ju vinte në ndihmë ... Një tjetër e pret me padurim.

  10.   Ivan Gabriel Sosa dijo

    Ne ju ndjekim Tani jemi duke filluar në botën e serverave të internetit. Kemi blerë dy nga Hostinger dhe një mik na ka ndihmuar ta konfigurojmë nga e para (PHP, MySQL, Apache). Combinationshtë i vetmi kombinim që përdoret në Linux, një platformë në të cilën kam qenë që nga janari.
    Por mua më interesonte shumë kjo temë. Gëzuar!

  11.   Jose Manuel dijo

    Unë kurrë nuk kam instaluar një server në internet, por nëse dua ta bëj atë, një pyetje, a do të jetë niveli i nevojshëm për të kuptuar udhëzimet dhe a është instalimi i lartë apo me njohuri themelore mund ta provoj? Faleminderit paraprakisht

    1.    eliotime3000 dijo

      E vërteta është se nuk kërkon shumë njohuri për të qenë në gjendje të trajtojë një server të bazës së të dhënave. Një që e ka provuar atë përvojë ju tregon.

  12.   Lojra dijo

    Përshëndetje, kjo është shumë e mirë ajo që do të bësh me këtë seri postimesh.

    Kohët e fundit kam instaluar Nginx + Php Fastcgi + Mariadb. Nginx.

    Të gjitha këto, i bëra në Archlinux, sepse ajo shpërndarje është e vetmja nga këndvështrimi im, që nuk sjell aq shumë të mira si të tjerët. E vendosa në një ambient të mbyllur në kafaz dhe më dha shumë shqetësim që ta punoja në mënyrë perfekte.

    Tani po funksionon në mënyrë perfekte. Edhe pse jam i interesuar të di mendimet tuaja, për atë të fëmijëve dhe proceseve të babait, sa më shumë këshilla të më jepni, aq më mirë.

    E gjithë kjo është vetëm për praktikë.
    Pajisjet kanë 4GB RAM DDR2 dhe një procesor 2Ghz Core 2.4duo.

    Përshëndetje dhe shpresoj në postimet e ardhshme të këtij seriali.

  13.   muskul dijo

    200 përdorues të lidhur njëkohësisht?
    Vetëm në kohë të caktuara të ditës, apo jo? Sepse përndryshe do të kalonte ato 30.000 vizita ditore.

    1.    KZKG ^ Gaara dijo

      Po, sigurisht, nuk ka gjithmonë 200 persona në internet, në këtë moment ka pothuajse 40 sepse është akoma herët, për disa orë ata do të kalojnë 100.

  14.   dhunter dijo

    Vetëm për argëtim, unë thjesht kalova nga lighty në nginx në stacionin tim të punës (Symfony2 tani), e mora konfigurimin nga këtu [1], shumë e thjeshtë.

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

  15.   Prill4xas dijo

    Në pritje të vazhdimit të kësaj

    1.    KZKG ^ Gaara dijo

      Këtë javë duhet ta botoj, faleminderit që na lexove

      1.    shëndetësor dijo

        Y? shume mungon?

  16.   Dekan dijo

    Postim i mbare

  17.   NOEL IVAN dijo

    MIREMBREMA.
    Për shkak të specifikimeve të një projekti shkollor, ata më lejojnë të instaloj NGINX në OPENBSD 5.4 në ORACLE MV VIRTUALBOX që të jetë në gjendje të përdorë PHP, MYSQL, ND OR TJETR, NADAMAS Q BE NUK KAM QEN BE N AB T GJENI INFORMATA TARD KUAJ, ISSHT PRO PROBLEM P MER M ME SHUM.