Veebiserveri installimine rakendusega Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [1. osa: esitlus]

Mitte kaua aega tagasi mainisime seda nüüd DesdeLinux (kõik selle teenused) töötavad GNUTransfer.com serverid. Blogi on kiiruse, sujuvuse osas palju paremaks muutunud isegi siis, kui meil on (pärast UsemosLinuxi ühinemist) rohkem kui 30.000 200 külastust päevas (peaaegu XNUMX kasutajat ühendas samaaegselt). Kuidas saavutada serveris head jõudlust ka selle liiklusmahu korral?

Praegu on Justice'il (VPS, kus ajaveeb ja mõni muu teenus on) 3 GB RAM-i, kuid tarbitakse vähem kui 500 MB, see on võimalik kasutatava tarkvara õige valiku ja nende piisava konfiguratsiooniga. Näiteks on Apache maailmas kahtlemata suurepärane, hostimise osas nr 1, kuid just seetõttu pole Apache alati parim valik. Kui liiklus on suur ja serveri riistvara pole tegelikult suur (nt 8 või 16 GB RAM-i), võib Apache tarbida liiga palju RAM-i, mistõttu serveril võtab teatud aegadel reageerimine liiga kaua aega või veelgi hullem, et meie sait pole võrgus ebapiisavad ressursid. Seetõttu valivad paljud meist Apginile Nginxi.

nginx:

Nginxist rääkisime teile juba artiklis varem Nginx: huvitav alternatiiv Apache'ile, seal rääkisime teile, et tegemist on veebiserveriga nagu Apache, LightHttpd või Cherokee, kuid võrreldes Apache'iga paistab see silma oma jõudluse ja vähese riistvarakulu poolest, mistõttu paljud suured saidid nagu Facebook, MyOpera.com, DropBox või isegi WordPress .com kasutab Apache asemel Nginxi. Linuxi maailmas DesdeLinux See pole ainus, kes Nginxi kasutab, minu teada kasutavad seda ka emsLinux ja MuyLinux :)

Minu isiklik kogemus Nginxiga pärineb mitu aastat tagasi, kui hakkasin vajaduse korral Apache'ile kergeid alternatiive otsima. Sel ajal oli Nginx versioonil 0.6 ja selle ühilduvus PHP-s tehtud suure nõudlusega saitidega polnud kõige optimaalsem, kuid tänapäeval alates versioonist 0.9 (v1.2.1 on saadaval Debiani stabiilses versioonis, v1.4.2 on saadaval ArchLinuxis) on palju paremaks muutunud, nii et Nginx + PHP korraliku seadistamise ja ühendamise korral töötab kõik nagu võlu.

Selles õpetussarjas Kasutan Nginxi versiooni 1.2.1-2.2, saadaval Debiani talli repos (Wheezy).

PHP5:

PHP, see programmeerimiskeel, millega paljud saidid (ja CMS) täna töötavad, on minu arvates perekonna must lammas. Teisisõnu, minu isiklik kogemus on see, et suured saidid, kus on palju külastusi ja millel on palju võimalusi, funktsioone jne., Kui selline sait tehakse PHP-s, kulutab see rohkem ressursse kui sarnane sait, näiteks RoR-is. Minu kogemus on selline, et inimesed, PHP on tohutu ressursside draakon, PHP + Apache on piisav, et neelata sadu ja sadu MB RAM-i ilma reaalse vajaduseta.

Põhjus, miks mitte kasutada RoR-i, Djangot või midagi muud, on lihtsalt see DesdeLinux (ajaveebi, meie lipulaev) töötab WordPressiga, PHP-ga arendatud CMS-iga, mis pakub meile nii palju mugavusi, et me lihtsalt ei plaani seda lühikeses või keskmises perspektiivis muuta, ausalt, WordPressiga, isegi kui see pole täiuslik, teenib meid seda, mida vajame ja võib-olla rohkemgi.

Seoses PHP-ga kasutan nendes õpetustes PHP versioon 5.4.4-14 saadaval Debiani Wheezy (stabiilne)

Spawn_FastCGI:

Võib öelda, et see ühendab Nginxit PHP-ga, st isegi kui neil on installitud PHP5 pakett, kui neil pole PHP-s saidi avamisel installitud ja käivitatud Spawn_FastCGI, siis brauser laadib faili alla, seda ei näidata neile kõike, mis .php on programmeeritud, kuna server ei tea, kuidas .php-faile töödelda, mistõttu on hädavajalik installida ja seadistada Spawn_FastCGI.

Kui me kasutaksime Apache'i, oleks see midagi nii lihtsat kui libapache2-mod-php5 paketi installimine, kuid kuna me kasutame Nginxi, peame selle asemel installima paketi spawn-fcgi. Samuti selgitan õpetuses, kuidas luua sellele algne skript kataloogis /etc/init.d/, et saaksite seda mugavamalt juhtida.

MySQL:

See võib olla suur küsimärk või võib-olla mõne jaoks ebakõlaline märkus. Paljud, keda ma tean, küsivad minult küsimuse: miks kasutada MySQL-i ja mitte MariaDB-d?

Probleem on lihtsalt selles, et mul ei ole praegu piisavalt aega pühenduda migratsioonile MySQL-ist MariaDB-sse. See migratsioon peaks teoreetiliselt olema kõigile läbipaistev, kõigega 100% ühilduv, kuid see on... nagu Ma ütlesin, et teoreetiliselt. Sel ajal alustasin kolimisteenustega DesdeLinux ühest VPS-ist teise pidin Apache'i maha jätma ja kasutama Nginxit, see hõlmas erinevaid konfiguratsioonifaile, erinevaid VHostide deklareerimise viise, serveri ja selle teenuste installimist ja seadistamist nullist, sel ajal ei saanud ma ühtegi ülesannet lisada ka ja ausalt öeldes vahetasin Apache'i Nginxi vastu, kuna Apache ei rahuldanud minu vajadusi, kuid MySQL vastab siiani minu vajadustele 100%, ma ei näe põhjust, miks ma peaksin oma töökoormust suurendama, muutes midagi, mis see juba töötas minu jaoks tehniliselt hästi.

Kui selgitasite, miks ma MariaDB-d ei installinud, selgitage ka seda, et kuna valdav osa veebilehtedest vajab toimimiseks andmebaasi, sest just seal hoitakse palju teavet (või peaaegu kogu). On mõned, kellele meeldib Postgre või keegi teine, selles õpetuste sarjas selgitan, kuidas installige MySQL ja konfigureerige iga saidi jaoks eraldi kasutajad.

La Minu kasutatav MySQL-i versioon on v5.5.31

APC-d:

APC on PHP optimeerija (selgitatakse väga lihtsalt). Kui see on õigesti konfigureeritud, võimaldab see meil PHP töötlemist paremini ja serverilt saadavaid vastuseid kiiremini.

On ka selliseid alternatiive nagu memcache, aga ma olen alati APC-d kasutanud ja mul on olnud väga soodsad tulemused. Soovitan lugeda seda artiklit inglise keeles: APC ja Memcache võrdlemine kohaliku sisuvahemäluna

Kasutan õpetuses selle versiooni php-apc v3.1.13-1 saadaval ka Debiani talli repos.

Kokkuvõte:

See konfigureerimise veebiserveri installimise viis ei ole kõige optimaalsem ega palju vähem, näiteks paljud soovitavad lakki, mis minu loetu põhjal teeb tõelisi imesid, sest kõik või peaaegu kõik on vahemällu salvestatud, kuid meie puhul pole seda 100% saidist on alati vahemällu salvestatud, kuna me ei soovi või peame sellesse äärmusesse minema. Kuid ma täpsustan, nagu ma eespool ütlesin: «nii palju kui ma olen lugenud», pole ma isiklikult lakki kasutanud kuni tänaseni, seega ei saa ma teile 100% objektiivset arvamust anda.

See on õpetuste seeria, milles näitan teile, kuidas installida veebiserverit, nagu see, mida praegu hostitakse. DesdeLinux (blogi, foorum, kleepimine jne). Blogil on iga päev 30.000 200 külastust, korraga ligi 500 kasutajat ja ometi ei ületa RAM tarbitud 3 MB, mõne jaoks võib see olla liigne tarbimine, aga... hei, meil on 500 GB muutmälu, alla XNUMX MB (mis sisaldab ka FTP-teenus, SSH jne) on tõesti hea, eks? 🙂

Kogu maagiat ei tee ainult Nginx + Spawn_FastCGI + APC, meie ajaveebi vahemälusüsteem on tõesti hästi seadistatud ja Nginxi reeglid on täpsed, see muudab ajaveebi isegi siis, kui see saabub palju liiklusprotsesse, palju vähem PHP kui see, mida tavaline, kuna sellel on juba palju vahemällu salvestatud. Kui teil on suure nõudlusega sait ja teil on ressursiprobleeme, soovitan teil tungivalt uurida, milline vahemälusüsteem sobib teie jaoks kõige paremini, milline neist sobib kõige paremini teie vajadustele.

Loodan, et leiate need õpetused huvitavaks. Püüan kõigis neist kõike põhjalikult, üksikasjalikult ja võimalikult lihtsalt lahti seletada.

seoses


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Bruno cascio DIJO

    Väga hea ja selge! Ma õnnitlen sind!

    1.    KZKG ^ Gaara DIJO

      Aitäh

  2.   Christopher castro DIJO

    Väga hea õpetus.

    Mind täidab kahtlusega see, kuidas nad e-posti serveri seadistasid.

    1.    KZKG ^ Gaara DIJO

      MailServer on midagi eraldi, st sellel pole midagi pistmist veebiserveriga, nagu teate you

      Kuid juba ammu otsustasin end MailServeriga mitte komplitseerida, otsustasin kasutada iRedMaili (MySQL, LDAP ja Postgre tugi) ning koos seadistustefailidesse lisatavate õigete sätete ja üksikasjadega töötab kõik hästi.

  3.   Mädaneb87 DIJO

    Mulle artikkel meeldib, ootan artikliseeriat

    1.    KZKG ^ Gaara DIJO

      Aitäh, loodan järgmise tuua esmaspäeval või teisipäeval, see tegeleb Nginxi installimise ja seadistamisega.

  4.   aka DIJO

    Väga hea, õige konfiguratsioon, seda on raske leida, tegurite vaheline kompromiss on mõnikord peaaegu lahendamatu, käisin ka mõni aeg tagasi nginxis ja hiljem mariadbis (hiljuti arvan, et aasta tagasi).

    // nagu ma mainisin, oleks tore, kui tõstaksite chroot võimaluse ja kasutaksite ka proxy_cache_path, mis on samuti kasulik. Samuti pistikupesa (kui see on võimalik) võrdlus pordiga. ja määratleda hästi laste / jäärade arv.

    seoses

    1.    KZKG ^ Gaara DIJO

      Tänan teid kommentaari eest 🙂
      Jah, muidugi, oleks väga tore Nginxi puuris hoida, et see sellisena muust süsteemist eraldi oleks, ma polnud nendes õpetustes seda võimalust kaalunud, vaatan, mida saan teha. Proxy_cache_pathi kohta pole ma seda kunagi kasutanud, loen sellest natuke, et näha, kuidas see läheb.

      Niitide arvu (min & max) osas on Nginxi konfiguratsioonis see ilmselgelt määratletud, Nginxi postituses räägin palju .conf-failist 😉

      Veelkord, tänan teid kommentaari eest.

  5.   MSX DIJO

    Seda tüüpi HowTod muudavad veebi arvutiteadlaste jaoks tõeliselt võimsaks, kuna see säästab meid tundide kaupa uurimis- ja testimistoiminguid, kuni me lõpuks sobiva variandi üle otsustame, suur tänu!

    Üks küsimus, kas see töötab Debiani peal? Milline operatsioonisüsteemi ja pakettide versioon?

    Tervitused!

    1.    KZKG ^ Gaara DIJO

      Gracias.
      Tõepoolest, teavitavaid saite, mis kordavad ja kordavad sealseid uudiseid, on juba liiga palju ... vaja on saite, mis panevad õpetusi, just seda veeb vajab!

      Jah, Debian Wheezy (praegune stabiilne), pakettide versioonid on seal postituses 😉

  6.   eliotime3000 DIJO

    Suurepärane kommentaar. Vaatame, kas ma teen ZPanel X-ga mingisugust viga, ja muide, installin Debian Wheezys käsitsi.

  7.   Federico Antonio Valdes Toujague DIJO

    Minge edasi KZKG ^ Gaara !!!, et tõe parim kriteerium on praktika ja teil on kogemusi selle kohta, mida kirjutate. Professionaalne ja töötav veebisait. Major League pesapall, kutt.

    1.    eliotime3000 DIJO

      See on tõsi. Samuti, kui ma hakkasin Windowsi installitud veebiserveritega mängima, on tõde see, et kui WordPressi kasutate, kulub Apache ressursitarbimise osas üles (Drupalis kulutas see poole ressurssidest).

  8.   vedu DIJO

    Ma arvan, et Nginxi osas tuleb see õpetus kasuks. Nüüd tahan installida serveri, kus on Nginx, php, Varnish ja MariaDB. Kuid loomulikult peame alustama ja laiskus võib serveritega võitlemisel minu jaoks palju ära teha ja hetkel olen rahul tüüpilise lambi ja mälumäluga, mis mul xDD on.

    Tervitus.

  9.   auroszx DIJO

    Suurepärane, lihtsalt üks neist oleks kasulik 🙂 Teine ootab seda põnevusega.

  10.   Ivan Gabriel Sosa DIJO

    Me järgime teid. Alustame praegu veebiserverite maailmast. Ostsime kaks Hostingerist ja üks sõber aitas meil seda nullist konfigureerida (PHP, MySQL, Apache). See on ainus kombinatsioon, mida kasutatakse Linuxis - platvormil, kus olen olnud jaanuarist saadik.
    Kuid mind huvitas see teema väga. Terviseks!

  11.   Jose Manuel DIJO

    Ma pole kunagi veebiserverit installinud, kuid kui ma tahan seda teha, siis küsige, kas õpetuste mõistmiseks ja installimiseks vajalik tase on vajalik või võiksin seda proovida? Ette tänades.

    1.    eliotime3000 DIJO

      Tõsi on see, et andmebaasiserveriga ümber käimiseks pole vaja palju teadmisi. See, kes on seda kogemust juba proovinud, ütleb teile.

  12.   Mauricio DIJO

    Tere, see, mida te selle postitusseeriaga ette võtate, on väga hea.

    Installisin hiljuti Nginx + Php Fastcgi + Mariadb. Nginx.

    Seda kõike tegin ma Archlinuxis, sest see levitamine on minu vaatepunktist ainus, mis ei too nii palju head kui teised. Ma panin selle puurikeskkonda ja see andis mulle palju ebamugavusi, kui see täiuslikult toimis.

    Nüüd töötab see suurepäraselt. Kuigi mind huvitab teie arvamuste teadmine laste ja isa protsesside kohta, mida rohkem näpunäiteid nad mulle annavad, seda parem.

    Kõik see on ainult harjutamiseks.
    Varustusel on 4 GB DDR2-mälu ja 2 GHz Core 2.4duo protsessor.

    Tervitused ja ootan huviga selle sarja eelseisvaid postitusi.

  13.   kas DIJO

    200 kasutajat ühendatud korraga?
    Ainult kindlatel kellaaegadel, eks? Sest muidu ületaks see 30.000 XNUMX igapäevast külastust.

    1.    KZKG ^ Gaara DIJO

      Jah, loomulikult pole võrgus alati 200 inimest, praegusel hetkel on neid peaaegu 40, sest on veel vara, mõne tunni pärast ületavad nad 100 piiri.

  14.   dhunter DIJO

    Nalja pärast vahetasin lihtsalt oma tööjaamas (praegu Symfony2) kergelt nginx-ile, võtsin siit konffi [1], väga lihtne.

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

  15.   Apr4xas DIJO

    Ootan selle jätkamist 😀

    1.    KZKG ^ Gaara DIJO

      Sel nädalal pean selle avaldama, aitäh, et lugesite nos

      1.    tervis DIJO

        ja? palju on puudu?

  16.   dekaan DIJO

    Hea postitus ...

  17.   NOEL IVAN DIJO

    TERE ÕHTUST.
    KOOLIPROJEKTI SPETSIFIKATSIOONIDE JÄRGI LASIVAD NAD MINU PAIGALDADA NGINX ORACLE MV VIRTUALBOX-i AVENBSD 5.4-s, et saaksin kasutada PHP-d, MySQL-i, teiste seas ka NADAMASID, MIDA EI OLE VÕIMALIK LÄBIVÕTUD TEAVE LEIDA ON ÜLES MINU PROBLEEM.