Kā instalēt tīmekļa serveri ar Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [1. daļa: Prezentācija]

Pirms neilga laika mēs pieminējām, ka tagad darbojas DesdeLinux (visi tā pakalpojumi) GNUTransfer.com serveri. Emuārs ir daudz uzlabojies ātruma, plūstamības ziņā, pat ja mēs ejam no (pēc UsemosLinux apvienošanās) katru dienu vairāk nekā 30.000 200 apmeklējumu (vienlaikus pieslēdzās gandrīz XNUMX lietotāji). Kā sasniegt labu servera veiktspēju pat ar šo trafika apjomu?

Pašlaik Justice (VPS, kur atrodas emuārs un kāds cits pakalpojums) RAM ir 3 GB, tomēr tiek patērēts mazāk nekā 500 MB, tas ir iespējams, pareizi izvēloties izmantojamo programmatūru un atbilstoši konfigurējot to. Piemēram, Apache neapšaubāmi ir lielisks pasaulē, tas ir Nr. 1, ja runa ir par mitināšanu, taču tieši tāpēc Apache ne vienmēr ir labākais risinājums. Ja datplūsma ir liela un servera aparatūra nav īsti liela (piem., 8 vai 16 GB RAM), Apache var patērēt pārāk daudz RAM, tāpēc serverim noteiktā laikā ir jāgaida pārāk ilgs laiks, lai atbildētu, vai vēl sliktāk, ka mūsu vietne ir bezsaistē nepietiekami resursi. Tāpēc daudzi no mums izvēlas Nginx, nevis Apache.

Nginx:

Mēs jau teicām jums par Nginx iepriekš rakstā Nginx: interesanta alternatīva Apache, tur mēs jums sakām, ka tas ir tīmekļa serveris, piemēram, Apache, LightHttpd vai Cherokee, taču tas, salīdzinot ar Apache, izceļas ar savu veiktspēju un zemo aparatūras patēriņu, tieši šī iemesla dēļ daudzas lielas vietnes, piemēram, Facebook, MyOpera.com, DropBox vai pat WordPress .com Apache vietā izmantojiet Nginx. Linux pasaulē SinceLinux nav vienīgais, kas izmanto Nginx, cik zinu, to izmanto arī emsLinux un MuyLinux 🙂

Mana personīgā pieredze ar Nginx aizsākās vairākus gadus, kad nepieciešamības dēļ sāku meklēt vieglas alternatīvas Apache. Tajā laikā Nginx izmantoja versiju 0.6, un tās saderība ar PHP izveidotajām vietnēm ar visaugstāko pieprasījumu nebija optimālākā, tomēr mūsdienās no versijas 0.9 (v1.2.1 pieejams vietnē Debian Stable, v1.4.2 pieejams vietnē ArchLinux) ir daudz uzlabojusies, līdz ar pareizu Nginx + PHP konfigurāciju un savienojumu viss darbosies kā šarms.

Šajā apmācību sērijā Es izmantošu Nginx versiju 1.2.1-2.2, pieejams Debian Stable repos (Wheezy).

PHP5:

PHP, tā programmēšanas valoda, ar kuru šodien strādā daudzas vietnes (un CMS), manuprāt, ir ģimenes melnās avis. Tas ir, manā personīgajā pieredzē lielas vietnes ar lielu apmeklējumu apjomu, ar daudzām iespējām, funkcijām utt., Ja šāda vietne tiek veidota PHP, tas patērēs vairāk resursu nekā līdzīga vietne, kas izveidota, piemēram, RoR. Mana pieredze ir tāda, ka ļaudis, PHP ir milzīgs resursu pūķis, ar PHP + Apache pietiek, lai norītu simtiem un simtiem MB RAM bez reālas vajadzības.

Iemesls neizmantot RoR, Django vai kādu citu ir vienkārši tas, ka DesdeLinux (emuārs, mūsu flagmanis) darbojas ar WordPress, CMS, kas izstrādāta ar PHP un piedāvā mums tik daudz, daudz ērtības, ka mēs vienkārši nedomājam to mainīt īsā vai vidējā līmenī. termins, godīgi sakot, WordPress pat tad, ja tas nav ideāls, kalpo mums vajadzīgajam un, iespējams, vēl vairāk.

Attiecībā uz PHP šajās apmācībās es izmantošu PHP versija 5.4.4-14 pieejams vietnē Debian Wheezy (stabils)

Spawn_FastCGI:

Var teikt, ka tieši tas savieno Nginx ar PHP, tas ir, pat ja viņiem ir instalēta PHP5 pakete, ja viņiem nav instalēta un izpildīta Spawn_FastCGI, kad viņi atver vietni PHP, pārlūks lejupielādēs failu, tas viņiem neko neparādīs, ka .php ir ieprogrammēts, jo serveris nezina, kā apstrādāt .php failus, tāpēc ir svarīgi instalēt un konfigurēt Spawn_FastCGI.

Ja mēs izmantotu Apache, tas būtu kaut kas tik vienkārši, kā instalēt paketi libapache2-mod-php5, bet, tā kā mēs izmantojam Nginx, tā vietā būs jāinstalē spawn-fcgi pakete. Arī apmācībā es paskaidrošu, kā izveidot sākotnējo skriptu mapē /etc/init.d/, lai jūs to varētu ērtāk kontrolēt.

MySQL:

Tā varētu būt lielā jautājuma zīme vai, iespējams, dažiem pretrunīgā piezīme. Daudzi, kurus es zinu, man uzdos jautājumu: kāpēc izmantot MySQL, nevis MariaDB?

Lieta vienkārši ir tāda, ka man nav pietiekami daudz laika, lai šajā brīdī sevi veltītu migrācijas veikšanai no MySQL uz MariaDB, migrācijai, kurai teorētiski vajadzētu būt caurspīdīgai visiem, simtprocentīgi visam savietojamam, bet tas ... kā jau teicu, teorētiski. Laikā, kad es sāku pārvietot FromLinux pakalpojumus no viena VPS uz citu, man bija jāatstāj Apache un jāizmanto Nginx, tas nozīmēja dažādus konfigurācijas failus, dažādus veidus, kā deklarēt VHosts, instalēšanu un konfigurēšanu no nulles servera un tā pakalpojumu, Tajā laikā es nevarēju sarakstam pievienot vēl vienu uzdevumu, un, godīgi sakot, es nomainīju Apache uz Nginx, jo Apache neapmierināja manas vajadzības, tomēr MySQL līdz šim manas vajadzības apmierina 100%, es neredzu iemeslus lv tajā brīdī es palielināju darba slodzi, mainot kaut ko tādu, kas man jau tehniski izdevās.

Kad esat paskaidrojis, kāpēc es neinstalēju MariaDB, paskaidrojiet arī to, ka lielākajai daļai vietņu darbībai nepieciešama datu bāze, jo tieši tajā tiks glabāta liela daļa informācijas (vai gandrīz visa). Ir daži, kuriem patīk Postgre vai kāds cits, šajā apmācību sērijā es paskaidrošu, kā instalējiet MySQL un konfigurējiet atsevišķus lietotājus katrai vietnei.

La MySQL versija, kuru es izmantošu, ir v5.5.31

APC:

APC ir PHP optimizētājs (izskaidrots ļoti vienkārši). Pareizi konfigurējot, tas ļauj mums, ka PHP apstrāde darbojas labāk, ka atbildes no servera ir ātrākas.

Ir tādas alternatīvas kā memcache, tomēr es vienmēr esmu izmantojis APC, un man ir bijuši ļoti labvēlīgi rezultāti. Es iesaku izlasīt šo rakstu angļu valodā: APC un Memcache salīdzināšana kā vietējā satura kešatmiņa

Pamācībā es izmantošu php-apc v3.1.13-1 pieejams arī Debian Stable repos.

Apkopojot:

Šis tīmekļa servera konfigurācijas instalēšanas veids nav pats optimālākais, tālu no tā, piemēram, daudzi ieteiks laku, kas no manis izlasītā dara patiesus brīnumus, jo viss vai gandrīz viss ir kešatmiņā, taču mūsu gadījumā tas mums nav vajadzīgs. 100% vietnes vienmēr tiek saglabāta kešatmiņā, jo mēs nevēlamies vai nevajag iet uz šo galējību. Tomēr es precizēju, kā jau teicu iepriekš: "cik esmu lasījis", es personīgi līdz šodienai neesmu lietojis laku, tāpēc es nevaru sniegt jums 100% objektīvu viedokli.

Šī būs virkne apmācību, kurās es parādīšu, kā instalēt tādu tīmekļa serveri kā to, kuru pašlaik mitina FromLinux (emuārs, forums, ielīmēšana utt.). Emuārā katru dienu ir 30.000 200 apmeklējumu, gandrīz 500 lietotāji tam piekļūst vienlaicīgi, un pat tad RAM nepārsniedz 3 MB patērēto daudzumu, dažiem tas var būt pārmērīgs patēriņš, bet ... hei, mums ir 500 GB RAM, mazāk nekā XNUMX MB (kas ietver FTP, SSH utt.) Vai tiešām ir labi, vai ne? 🙂

Visu burvju darbību veic ne tikai Nginx + Spawn_FastCGI + APC, mūsu emuāra kešatmiņas sistēma ir patiešām labi konfigurēta un Nginx noteikumi ir precīzi, tas padara emuāru pat tad, ja tas saņem daudz trafika, daudz mazāk PHP nekā tas, ko parasti, jo tajā jau ir daudz kešatmiņas. Ja jums ir ļoti pieprasīta vietne un ir problēmas ar resursiem, es bez šaubām iesaku izpētīt, lai redzētu, kura kešatmiņas sistēma jums vislabāk darbosies, kura vislabāk atbildīs jūsu vajadzībām.

Es ceru, ka jums šīs apmācības būs interesantas. Katrā no tām es centīšos visu izskaidrot visaptveroši, detalizēti un pēc iespējas vienkāršāk.

Sveicieni


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

27 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Bruno Kasio teica

    Ļoti labi un skaidri! ES tevi apsveicu!

    1.    KZKG ^ Gaara teica

      Paldies

  2.   Kristofers Kastro teica

    Ļoti laba apmācība.

    Kas mani piepilda ar šaubām, ir tas, kā viņi konfigurēja e-pasta serveri.

    1.    KZKG ^ Gaara teica

      MailServer ir kaut kas cits, proti, tam nav nekāda sakara ar tīmekļa serveri, kā jūs zināt 🙂

      Tomēr jau sen es nolēmu nesarežģīt sevi ar MailServer, es izvēlējos izmantot iRedMail (atbalsts MySQL, LDAP un Postgre), un ar pareizajiem iestatījumiem un detaļām, kuras pievienoju konfigurācijas failos, viss darbojas labi.

  3.   87 teica

    Man patīk raksts, es gaidu rakstu sēriju

    1.    KZKG ^ Gaara teica

      Paldies, es ceru nākamo atnest pirmdien vai otrdien, tas nodarbosies ar Nginx instalēšanu un konfigurēšanu.

  4.   aca teica

    Ļoti laba, pareiza konfigurācija, to ir grūti atrast, kompromiss starp faktoriem dažreiz ir gandrīz neatrisināms, es arī pirms kāda laika devos uz nginx un vēlāk uz mariadb (nesen, es domāju, ka pirms gada).

    // Kā jau minēju, būtu labi, ja jūs izvirzītu chroot iespēju un izmantotu proxy_cache_path, kas arī ir noderīgs. Arī kontaktligzdas (gadījumos, kad tas ir iespējams) salīdzinājums ar portu. un labi definē bērnu / aunu skaitu.

    Sveicieni

    1.    KZKG ^ Gaara teica

      Paldies par komentāru 🙂
      Jā, protams, būtu ļoti jauki ievietot Nginx būrī, lai tas būtu atsevišķi no pārējās sistēmas, es šajās apmācībās nebiju apsvērusi šo iespēju, es redzēšu, ko es varu darīt. Par proxy_cache_path es nekad to neesmu izmantojis, es mazliet par to lasīšu, lai redzētu, kā tas notiek.

      Runājot par pavedienu skaitu (min & max), Nginx konfigurācijā tas ir acīmredzami definēts, Nginx ierakstā es daudz runāšu par .conf failu 😉

      Vēlreiz paldies par komentāru.

  5.   MSX teica

    Šis HowTos veids padara tīmekli patiesi jaudīgu datorzinātniekiem, jo ​​tas ietaupa mums daudz stundu pētījumu un testēšanas, līdz mēs beidzot izlemjam par piemērotu iespēju, paldies liels!

    Viens jautājums, vai tas darbojas ar Debian? Kāda OS un pakotņu versija?

    Sveicieni!

    1.    KZKG ^ Gaara teica

      Paldies.
      Patiešām, vietņu, kas ziņo, kuras atkārto un atkārto jaunumus, jau ir par daudz ... ir nepieciešamas vietnes, kurās tiek ievietotas apmācības, tas ir tas, kas nepieciešams tīmeklim!

      Jā, Debian Wheezy (pašreizējais stabils), pakotņu versijas ir tieši tur ierakstā 😉

  6.   3000 teica

    Izcils komentārs. Apskatīsim, vai es ar ZPanel X veicu sava veida Errata, un, starp citu, instalēšanu veicu manuāli Debian Wheezy.

  7.   Federiko Antonio Valdess Toujague teica

    Uz priekšu, KZKG ^ Gaara !!!, ka labākais patiesības kritērijs ir prakse, un jums ir pieredze par to, ko jūs rakstāt. Profesionāla un strādājoša vietne. Augstākās līgas beisbols, puisīt.

    1.    3000 teica

      Tā ir taisnība. Turklāt, kad es sāku spēlēt ar tīmekļa serveriem, kurus instalēju sistēmā Windows, patiesība ir tāda, ka Apache resursu patēriņa ziņā palielinās, ja izmantojat WordPress (Drupal tas patērēja pusi resursu).

  8.   kariete teica

    Es domāju, ka Nginx daļā šī apmācība būs noderīga. Tagad es gribu instalēt serveri ar Nginx, php, Varnish un MariaDB. Bet, protams, mums jāsāk, un slinkums manā labā var daudz palīdzēt cīņā ar serveriem, un šobrīd es esmu apmierināts ar tipisko lampu un memcache, kas man ir xDD.

    Sveiciens.

  9.   AurosZx teica

    Lieliski, tikai viens no šiem noderētu 🙂 Cits to gaida.

  10.   Ivans Gabriels Sosa teica

    Mēs sekojam jums. Mēs šobrīd sākam darboties tīmekļa serveru pasaulē. Mēs nopirkām divus no Hostinger, un draugs palīdzēja mums to konfigurēt no jauna (PHP, MySQL, Apache). Tā ir vienīgā kombinācija, kas tiek izmantota Linux, platformā, kurā esmu bijis kopš janvāra.
    Bet mani ļoti interesēja šī tēma. Priekā!

  11.   Jose Manuel teica

    Es nekad neesmu instalējis tīmekļa serveri, bet, ja es to vēlos darīt, jautājums, vai līmenis, kas nepieciešams, lai saprastu apmācības un vai instalēšana ir augsta, vai es varētu to izmēģināt? Paldies jau iepriekš.

    1.    3000 teica

      Patiesība ir tāda, ka tas neprasa daudz zināšanu, lai varētu rīkoties ar datu bāzes serveri. Jums saka tas, kurš šo pieredzi jau ir izmēģinājis.

  12.   Maurīcija teica

    Sveiki, tas, ko jūs darīsit ar šo ierakstu sēriju, ir ļoti labs.

    Nesen es instalēju Nginx + Php Fastcgi + Mariadb. Nginx.

    To visu es izdarīju Archlinux, jo no mana viedokļa šī izplatīšana ir vienīgā, kas nesniedz tik daudz labumu kā pārējie. Es to ievietoju sprostā, un tas man sagādāja daudz neērtību, lai tas darbotos nevainojami.

    Tagad tas darbojas nevainojami. Lai gan man ir interesanti uzzināt jūsu viedokli par bērniem un tēva procesiem, jo ​​vairāk padomu jūs man sniegsit, jo labāk.

    Tas viss ir paredzēts tikai praksei.
    Iekārtai ir 4 GB DDR2 RAM un 2 GHz Core 2.4duo procesors.

    Sveiciens, un es ar nepacietību gaidu gaidāmos šīs sērijas ierakstus.

  13.   muskulis teica

    200 lietotāji pieslēdzās vienlaicīgi?
    Tikai noteiktā dienas laikā, vai ne? Jo citādi tas pārsniegtu šos 30.000 XNUMX ikdienas apmeklējumus.

    1.    KZKG ^ Gaara teica

      Jā, protams, tiešsaistē ne vienmēr ir 200 cilvēku, šajā brīdī viņu ir gandrīz 40, jo ir vēl agri, pēc dažām stundām tie pārsniegs 100.

  14.   dunter teica

    Izklaidei es tikko pārslēdzos no vieglās uz nginx savā darbstacijā (šobrīd Symfony2), no šejienes paņēmu konfitu [1], ļoti vienkāršu.

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

  15.   Apr4xas teica

    Gaida šī 😀 turpinājumu

    1.    KZKG ^ Gaara teica

      Šonedēļ man tas jāpublicē, paldies, ka lasīju nr

      1.    veselība teica

        un? daudz pietrūkst?

  16.   Dekāns teica

    Labs ziņojums ...

  17.   NOEL IVAN teica

    LABVAKAR.
    SKOLAS PROJEKTA SPECIFIKĀCIJU DĒĻ VIŅI Ļauj man ORINSTAL MV VIRTUALBOX uzstādīt NGINX 5.4., Lai spētu izmantot PHP, MySQL, citu personu starpā, NADAMAS, KAS NEVARĒJU ATKLĀT, KAS MINĒJIET iepriekš.