Kaip įdiegti žiniatinklio serverį naudojant „Nginx + MySQL + PHP5 + APC + Spawn_FastCGI“ [2-oji dalis: „Nginx“]

Prieš kelias savaites Aš jums pasakojau apie šią pamokų seriją, kaip įdiegti ir konfigūruoti serverį, kad būtų galima talpinti didelę paklausą. Šis straipsnis bus apie „Nginx“ diegimą ir konfigūravimą:

nginx:

Mes jau pasakojome apie „Nginx“ anksčiau straipsnyje „Nginx“: įdomi „Apache“ alternatyva, mes jums pasakėme, kad tai yra žiniatinklio serveris, pvz., „Apache“, „LightHttpd“ ar „Cherokee“, tačiau, palyginti su „Apache“, jis išsiskiria savo našumu ir mažu aparatinės įrangos suvartojimu, todėl daugelis didelių svetainių, tokių kaip „Facebook“, „MyOpera.com“, „DropBox“ ar net „WordPress“ .com naudoja Nginx vietoj Apache. Linux pasaulyje DesdeLinux Tai ne vienintelis, kuris naudoja Nginx, kiek žinau, tai naudoja ir emsLinux bei MuyLinux :)

Mano asmeninė „Nginx“ patirtis prasidėjo kelerius metus, kai dėl reikalo pradėjau ieškoti lengvų „Apache“ alternatyvų. Tuo metu „Nginx“ rinkosi 0.6 versiją, o suderinamumas su didelės paklausos svetainėmis, sukurtomis PHP, nebuvo pats optimaliausias, tačiau šiandien nuo 0.9 versijos (v1.2.1 galima rasti „Debian Stable“, v1.4.2 - „ArchLinux“) patobulėjo tiek, kad tinkamai sukonfigūravus ir sujungus „Nginx + PHP“ viskas veiks kaip žavesys.

Šioje pamokų serijoje Aš naudosiu Nginx 1.2.1-2.2 versiją, prieinama „Debian Stable“ repose („Wheezy“).

Šioje pamokoje kalbama tik apie „Nginx“, o ne apie „Nginx + PHP“, „Nginx + PHP“ sąjunga, taip pat jos optimizavimas ar reikalinga konfigūracija bus nagrinėjama kita pamoka

1. Diegimas:

Pradėsime nuo pirmo dalyko, įdiekite „Nginx“ iš savo saugyklų.

Visos komandos, kurios bus vykdomos, vykdomos su root teisėmis, sudedant sudo kiekvienos eilutės pradžioje arba prisijungus kaip root

Jei savo serveryje naudojate tokį paskirstymą kaip „Debian“, „Ubuntu“ ar kokį nors darinį terminale, turite įdėti šiuos duomenis ir paspausti: įeiti :

aptitude install nginx

„aptitude“ nėra įdiegtas pagal numatytuosius nustatymus „Ubuntu“, tačiau aš rekomenduoju jį įdiegti ir naudoti vietoj apt-get, nes tam tikrais atvejais aptitude geriau valdo priklausomybes

Jei naudojate kitą paskirstymą savo serveryje, pvz., „CentOS“, „Red Hat“, „Fedora“, tiesiog įdiekite paketą: nginx iš oficialios saugyklos

Asmeniškai aš nerekomenduoju jokių „Debian“ darinių, net ir „Ubuntu“, serveriams, per daugelį metų mano patirtis nebuvo visiškai patenkinama. Mano pirmas pasirinkimas serverio operacinei sistemai yra „Debian“, tada pagalvojau apie „CentOS“, pagaliau šiek tiek BSD

2. Konfigūracija:

Ya tenemos instalado Nginx, pero necesitamos obviamente configurarlo. Les he preparado un archivo comprimido en el FTP el cual contiene todas las configuraciones que se usan en los servidores de DesdeLinux, tanto para PHP, Nginx, etc. Vamos a descargar y descomprimir ese archivo:

cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

Tai sukurs aplanką „nginx-spawn-fastcgi“, iš jo mums reikės dviejų failų grynam „Nginx“ (tai yra, nesiejant jo su PHP):

  • nginx.conf - »Pagrindinis„ Nginx “konfigūracijos failas (apie jo turinį pakalbėsime vėliau)
  • index.html - »Paprastas html failas, kurį naudosime norėdami sužinoti, ar„ Nginx “iš tikrųjų mums tinka savo pagrindine forma
  • mywebsite.net - »Paprastos svetainės,„ VHost “(virtualaus pagrindinio kompiuterio), kuris sukonfigūruos prieigą prie ankstesnio html, konfigūracijos failas

Pirmiausia persikelkime į „Nginx“ nustatymų aplanką:

cd /etc/nginx/

Tada pašalinkime numatytąją konfigūraciją ir įdėkime savo:

mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./

Tai, kaip sakiau, yra pagrindinis „Nginx“ konfigūracijos failas, jame aš jau apibrėžiau:

vartotojo www duomenys; darbininkas_procesai 4; pid /var/run/nginx.pid;

Vartotojo prieiga prie failų sistemos (su kuria „nginx“ pasieks visur), procesų, su kuriais bus dirbama, skaičius ir PID („nginx“ proceso ID).

Mes taip pat turime nedidelį bloką, vadinamą įvykiais (įvykių nustatymai), kuriame yra eilutė, nurodanti didžiausią leistiną ryšių skaičių kiekviename įvykyje. Žemiau yra blokas, vadinamas http.

Šiame „http“ bloke yra beveik viskas, kas susiję su priegloba, bent jau daugybė dalykų, kurie jus domins. Pavyzdžiui, maksimalus laikas gyventi ar laukti (skirtasis laikas), kur bus mūsų bendrieji žurnalai (access.log ir error.log), duomenų glaudinimas naudojant gzip, taip pat kitos taisyklės, kurios galėtų būti naudingos ateityje.

Kai bus sukurtas pagrindinis konfigūracijos failas, nukopijuokime failą iš mūsų „VHost“ į aplanką, kuriame yra svetainių

cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/

Be to, mes turime sukurti simbolinę nuorodą iš šio failo į aplanką, kuriame įgalintos svetainės.

ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/

Paaiškinu, ar naudinga turėti svetaines ir svetaines.

Jie ras momentų, kai turi būti paruošti ir sukonfigūruoti keli „vhost“ failai, nes tame serveryje jie prijungs internetą, tarkim, 5 svetaines. Tačiau pasitaiko, kad dar ne laikas įgalinti 2 iš tų 5 serverių, tačiau jie turi turėti paruoštus failus, kad prireikus jie būtų prisijungę per trumpiausią laiką. Į svetaines, kurios yra prieinamos (svetainės yra prieinamos) galite įdėti tiek serverių, kiek norite, nes tie, kuriuos „Nginx“ skaito, kad įdėtų internetą, yra tik svetainių, kuriose įgalinta (įgalinta svetainių), tai taip pat veiktų priešinga kryptimi, tuo atveju, jei norite įdėti svetainę neprisijungus (pavyzdžiui, laikinai), nereikia ištrinti failų iš savo serverio (failų, kurių mums prireiks vėliau), paprasčiausiai pašaliname simbolinę nuorodą su įgalintomis svetainėmis ir viskas. Simbolinių nuorodų ir ne tik failo nukopijavimo iš vieno aplanko į kitą naudingumas yra tas, kad kai norime redaguoti „vhost“, nesvarbu, ar redaguosime tą, kuris yra įgalintame ar prieinamame, galų gale tas pats
archyvas.

Failas „mywebsite.net“, kaip jau sakiau anksčiau, yra „vhost“, kuris tarnauja kaip pavyzdys, ty, kitaip tariant, mes turime modifikuoti mywebsite.net ir nustatyti savo konfigūracijas.

Turime pakeisti:

  • access_log (3 eilutė): Tai bus prieigos žurnalo failo kelias į šią svetainę
  • error_log (4 eilutė): Tai bus klaidų žurnalo failo kelias į šią svetainę
  • serverio_pavadinimas (5 eilutė): URL, domenas, kuris yra tame aplanke, pavyzdžiui, jei tai būtų forumas DesdeLinux tai būtų: forumo serverio_pavadinimas.desdelinux. Grynasis
  • root (6 eilutė): kelias į aplanką, kuriame yra HTML failai, palikime tai aplanke / var / www /, nes tai bus tik bandymas
Akivaizdu, kad jie savo prieglobos paslaugų teikėjo DNS įrašuose (naudodami „CPanel“ ar kitą įrankį) turi nurodyti, kad domenas ar padomenis, nurodytas server_name, yra šio serverio, kurį jie konfigūruoja, IP. Tai yra, DNS, kurdami savo domeno padomenius, jie turi deklaruoti, kad domenas arba padomenis, kurį jie įtraukė į 5 eilutę, yra šiame serveryje (šis serveris = aptariamo serverio IP adresas)

Dabar mums tiesiog reikia nukopijuoti html failą į aplanką, kurį apibrėžėme savo VHost faile, / var / www /:

mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/

Tada mes paleidžiame „Nginx“ iš naujo ir viskas:

service nginx restart

O voila, atsiras kažkas panašaus:

„nginx-pure-test-site-html“

Primenu, kad pirmiausia dirbame su „Nginx for HTML“, neturėdami PHP palaikymo, tai įdiekite PHP ir susiekite ją su „Nginx“ bus kitos mokymo programos turinys (pažadu).

Bet kokiu atveju, tai yra „Nginx“ diegimo ir konfigūravimo pamoka, kad ji veiktų grynai, tai yra, HTML svetainė, tikiuosi, kad ji jus domins.

Aš paaiškinsiu, kad taip, vis dar yra geriausių praktikų, kurias galima panaudoti, tačiau palaukime, kol baigsime šią pamokų seriją, tada mes įvertinsime galutinį darbo rezultatą 😉

saludos


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Nelsonas sakė

    Aciu, labai naudinga!

    1.    KZKG ^ Gaara sakė

      Ačiū už komentarą

  2.   dunteris sakė

    Užpakalinėse uostuose yra nginx 1.4 ..

    1.    KZKG ^ Gaara sakė

      Taip, bet gamybiniame serveryje aš to nenaudoju 😀

      1.    dunteris sakė

        Sakydamas „tai“ turite omenyje naujausią stabilią ir patikrintą versiją, kurią išleido „nginx“, jūs darote, kad ji skamba taip, lyg ji būtų tinkama iš „sid“. ~ _ ~

        1.    KZKG ^ Gaara sakė

          O ateik, ar tai ... serveriuose man niekada nepatiko naudoti kitas atpirkimo operacijas, backports ar panašiai 🙂

      2.    Rafaelis Castro sakė

        Visada stabilus serveriuose, tai sužinojau prieš daugelį metų.

        1.    dunteris sakė

          „Nginx 1.4“ yra stabilus nuo praėjusių metų balandžio, antriniuose portuose jis yra 1.4.1-3.

          2013-04-24

          Išleista stabili „nginx-1.4.0“ versija, apimanti daugybę naujų funkcijų, sukurtų 1.3.x filiale - „WebSocket“ ryšių tarpinio palaikymo palaikymas, OCSP susegimas, SPDY modulis, „gunzip“ filtras ir dar daugiau.

          http://nginx.org/en/CHANGES-1.4

          1.    Rafaelis Castro sakė

            Jūs sakote teisingai, mano kepurė nenuimta.

  3.   chinoloko sakė

    Ačiū, kad pasidalijote, šiuo metu praktiškai įgyvendinu jūsų seniausią įrašą.
    Aš užpildysiu jus klausimais XD

    1.    KZKG ^ Gaara sakė

      Ačiū, kad perskaitėte 🙂
      Cualquier duda o pregunta ya sabes, estamos para ayudar, ahí tienes el foro.desdelinux.net donde entre todos te intentaremos dar la mejor solución

      saludos

      1.    Gibraninė barrera sakė

        Turiu klausimą, ar mano serveryje veikia „LAMP“ [„Linux“ („Debian Wheezy“), „Apache“, PHP ir „MySQL“), skirtas „WordPress“ ir „Owncloud“, kaip pereiti prie „Ngnix“, kitas klausimas, koks skirtumas yra „Ngnix“ ir „Lighttpd“.

        1.    KZKG ^ Gaara sakė

          Didžiausia komplikacija ar sunkumas perkeliant iš „Apache“ į „Nginx“ yra kiekvienos svetainės konfigūracijos, ty būtent jūsų naudojamas „.htaccess“.

          .Htaccess yra sudėtingiausias pereinant prie „Nginx“, nes tai yra skirtingos konfigūracijos, kurias turite įdėti į „Nginx VHost“.

          Apie „LightHTTPd“ ir „Nginx“ ... Nežinau, prieš daugelį metų „LightHTTPd“ naudojau tik vieną kartą, šiuo metu dar neįsivaizduoju, kaip vyksta jo plėtra, būtent naudojant PHP.

  4.   3000 sakė

    „NGINX“ atrodo gana paprasta, palyginti su „Apache“. Laukiu kito epizodo, kad galėčiau jį papildyti PHP

  5.   Mauricijus sakė

    Laukiu patarimų, kaip labiau optimizuoti „nginx“ 😀

    Beje, „Gaara“ galite įtraukti į kitą mokymo programą, kaip įdiegti SSL palaikymą.

    Sveikinimai.

    1.    KZKG ^ Gaara sakė

      Los tips que vienen son en realidad para optimizar el procesamiento PHP, caché a sitios, puedo poner el ejemplo de la configuración que usamos en DesdeLinux para Nginx+Wordpress+W3_Total_Cache 🙂

  6.   Kaiser sakė

    Ačiū už gerą indėlį.

  7.   Apr4xas sakė

    O archlinux vadovas kada? xD

    1.    KZKG ^ Gaara sakė

      „Arch“ jis buvo labai panašus, keičiasi tik paketų pavadinimai, bet ... konf yra beveik identiški

      Bet kas turi gamybos serverį su „Arch“? 😀

  8.   Apr4xas sakė

    Sveiki,

    Tai vėl aš xD ...

    Aš vykdžiau jūsų veiksmus taikydamas juos mašinoje su „archlinux“ ir turiu šią problemą:

    [abr4xas@Genius www]$ systemctl status nginx.service
    nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
    Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
    Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)

    Bet kokie pasiūlymai 😀

  9.   Rizas sakė

    Jo ... xox, aš noriu tik vidinio serverio, tai yra, aš noriu pakeisti tik „xampp“, ar turėčiau visa tai daryti?

    1.    KZKG ^ Gaara sakė

      Jei norite, galite tai įgyvendinti (ką aš kartoju, tai yra tai, su kuo dirba DL), iš tikrųjų mano virtualus serveris (kurį naudoju kūrimui ir testavimui), aš tai padariau su tuo pačiu dalyku, kurį aš paaiškinau.

      Tai yra, galite arba pašalinti XAMPP ir įdėti šį variantą, ir jis veiks gerai, arba jei norite palikti XAMPP ... jis vis tiek veiks jums.

      Teigiamas taškas, kai manau, kad tai naudoju, yra labai mažas aparatinės įrangos sunaudojimas, palyginti su „Apache“, tačiau toli gražu ne jūsų asmeniniame kompiuteryje, kuris nėra didelės paklausos talpinimas ... jei XAMPP jums gerai tinka, aš nesuprantu, kodėl jį pašalinti 🙂

  10.   Izaokas sakė

    Jau veikia mano „Linux“ serveris („Debian“, „Nginx“, „MySQL“ ir PHP). Man buvo sunku priversti PHP dirbti su „Nginx“, nes buvau įpratęs prie paprasto „Apache“ tinklo serverio.

    Na, mano klausimas yra toks: ar kas nors žino, kaip galiu nukreipti bandomąjį domeną, kurį nusipirkau, į savo serverį? Norėčiau išbandyti savo .com domeną ir sužinoti, kaip jis veikia, tačiau neturiu nė menkiausio supratimo, kaip tai padaryti, nes visada naudodamas NOIP adresą norėjau jį pasiekti naudodamasis „noip DUC“.

    Tikiuosi, kad kas nors gali man padėti, ačiū!

  11.   Abraomas sakė

    Tai suprantu bandydamas prisijungti prie jūsų ftp:

    cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

    HTTP užklausa išsiųsta, laukia atsakymo ... 404 nerasta
    2015-11-23 17:46:30 KLAIDA 404: nerasta.

  12.   Ryan sakė

    Mano serveris veikia „CentOS“ („Gunicorn“, „Nginx“, PHP), kad jie veiktų, man kainavo daug darbo, tačiau ta vieta, kur aš įstrigau, yra tai, kad norimam paleisti tinklalapiui reikia konfigūruoti domeno teikėją šiame Go Go tėti, taigi šiuo metu aš nežinau, kaip tęsti.

  13.   ricardo sakė

    Ar galėtumėte pasidalinti konfigūracijos failais su manimi, nes aš negaliu jų atsisiųsti