Ako nainštalovať webový server s Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [2. časť: Nginx]

Pred chvíľou Hovoril som vám o tejto sérii návodov, o tom, ako nainštalovať a nakonfigurovať server pre vysoký dopyt. Tento článok bude o inštalácii a konfigurácii Nginx:

Nginx:

O Nginxe sme vám už hovorili skôr v článku Nginx: Zaujímavá alternatíva k Apache, tam sme vám povedali, že ide o webový server ako Apache, LightHttpd alebo Cherokee, no v porovnaní s Apache vyniká výkonom a nízkou spotrebou hardvéru, práve preto mnoho veľkých stránok ako Facebook, MyOpera.com, DropBox či dokonca WordPress .com používa Nginx namiesto Apache. Vo svete Linuxu DesdeLinux Nie je jediný, ktorý používa Nginx, pokiaľ viem, používa ho aj emsLinux a MuyLinux :)

Moje osobné skúsenosti s Nginxom sa datujú pred niekoľkými rokmi, keď som z núdze začal hľadať ľahké alternatívy k Apache. V tom čase sa Nginx chystal pre verziu 0.6 a jeho kompatibilita s webmi s vysokým dopytom vytvoreným v PHP nebola najoptimálnejšia, avšak v súčasnosti od verzie 0.9 (v1.2.1 k dispozícii na Debiane Stable, v1.4.2 k dispozícii na ArchLinuxe) sa veľa zlepšil, až do tej miery, že pri správnej konfigurácii a zjednotení Nginx + PHP bude všetko fungovať ako kúzlo.

V tejto sérii tutoriálov Použijem Nginx verzie 1.2.1-2.2, dostupné v archívoch Debianu Stable (Wheezy).

Tento tutoriál sa venuje iba a výlučne Nginx, nie Nginx + PHP, spojeniu Nginx + PHP ako aj jeho optimalizácii alebo potrebnej konfigurácii sa budeme venovať v ďalší návod

1. Inštalácia:

Začneme prvou vecou, ​​inštaláciou Nginx z našich úložísk.

Všetky príkazy, ktoré sa vykonajú, sa vykonávajú s oprávneniami root, a to buď vložením sudo na začiatok každého riadku, alebo prihlásením ako root

Ak na svojom serveri používate v termináli distribúciu ako Debian, Ubuntu alebo nejaký derivát, musíte vložiť nasledovné a stlačiť vstúpiť :

aptitude install nginx

aptitude nie je v Ubuntu predvolene nainštalovaný, odporúčam vám ho však nainštalovať a použiť namiesto apt-get, pretože aptitude pri určitých príležitostiach lepšie spravuje závislosti.

V prípade, že na svojom serveri používate inú distribúciu, napríklad CentOS, Red Hat, Fedora, jednoducho si nainštalujte balíček: nginx z oficiálneho úložiska

Osobne neodporúčam žiadny derivát Debianu, dokonca ani Ubuntu pre servery, moje skúsenosti za tie roky neboli celkom uspokojivé. Moja prvá voľba pre serverové operačné systémy je Debian, potom by som myslel na CentOS, nakoniec nejaké BSD

2. Konfigurácia:

Nginx už máme nainštalovaný, ale samozrejme ho musíme nakonfigurovať. Pripravil som komprimovaný súbor na FTP, ktorý obsahuje všetky konfigurácie, ktoré sa používajú na serveroch. DesdeLinux, a to ako pre PHP, Nginx atď. Poďme si stiahnuť a rozbaliť tento súbor:

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

Týmto sa vytvorí priečinok s názvom nginx-spawn-fastcgi, z ktorého budeme potrebovať dva súbory pre čistý Nginx (to znamená bez jeho prepojenia s PHP):

  • nginx.conf - »Hlavný konfiguračný súbor Nginx (o jeho obsahu si povieme neskôr)
  • index.html - »Jednoduchý html súbor, pomocou ktorého zistíme, či pre nás Nginx skutočne funguje v tej najzákladnejšej podobe
  • mywebsite.net - »Konfiguračný súbor pre jednoduchý web, VHost (virtuálny hostiteľ), ktorý nakonfiguruje prístup k predchádzajúcemu html

Najprv sa presunieme do priečinka nastavení Nginx:

cd /etc/nginx/

Potom odstráňte jeho predvolenú konfiguráciu a vložte našu vlastnú:

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

Toto, ako som už uviedol, je hlavný konfiguračný súbor Nginx, v ktorom som už definoval nasledujúce:

používateľské údaje www; pracovné procesy 4; pid /var/run/nginx.pid;

Užívateľský prístup k súborovému systému (s ktorým bude nginx pristupovať všade), počet procesov na prácu a tiež PID (id procesu nginx).

Máme tu tiež malý blok nazývaný udalosti (nastavenia udalostí), ktorý obsahuje riadok označujúci maximálny povolený počet pripojení na jednu udalosť. Nižšie je blok s názvom http.

Tento blok http je ten, ktorý obsahuje takmer všetko, čo sa týka hostingu, minimálne veľa vecí, ktoré vás zaujmú. Napríklad maximálny čas na život alebo čakanie (časový limit), kde budú naše všeobecné protokoly (access.log a error.log), kompresia dát pomocou gzip, ako aj ďalšie pravidlá, ktoré by mohli byť v budúcnosti užitočné.

Akonáhle je hlavný konfiguračný súbor na mieste, skopírujme súbor z nášho VHost do priečinka sites-available

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

Okrem toho musíme z tohto súboru vytvoriť symbolický odkaz na priečinok s povolenými stránkami.

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

Vysvetľujem, aké užitočné je mať webové stránky povolené a dostupné.

Nájdu chvíle, keď musia mať pripravených a nakonfigurovaných niekoľko súborov vhost, pretože na tomto serveri umiestnia online, povedzme 5 stránok. Stáva sa však, že ešte nie je čas povoliť 2 z týchto 5 vhostov, ale musia mať pripravené súbory, aby boli v prípade potreby online v čo najkratšom čase. Na webové stránky môžu vložiť toľko vhostov, koľko chcú, pretože tie, ktoré Nginx číta na online, sú iba servery s povoleným webom, fungovalo by to aj opačným smerom, v prípade, že chcú umiestniť offline ( napríklad dočasne) web, nie je potrebné mazať súbory zo servera (súbory, ktoré budeme neskôr potrebovať), jednoducho odstránime symbolický odkaz povolených webov a je to. Užitočnosť mať symbolické odkazy a nielen kopírovať súbor z jedného priečinka do druhého je ten, že keď chceme editovať vhost, nezáleží na tom, či editujeme ten, ktorý je umiestnený v povolenom alebo dostupnom, nakoniec je to to isté
archív.

Súbor mywebsite.net, ako som už povedal, vhost, ktorý slúži ako príklad, to znamená, inými slovami, musíme upraviť web mywebsite.net a vytvoriť našu konfiguráciu.

Musíme zmeniť toto:

  • access_log (riadok 3): Toto bude cesta k súboru protokolu prístupu na túto stránku
  • error_log (riadok 4): Toto bude cesta k súboru denníka chýb na túto lokalitu
  • server_name (riadok 5): URL, doména, ktorá je hosťovaná v tomto priečinku, napríklad ak by to bolo fórum DesdeLinux bolo by to: forum server_name.desdelinux.net
  • root (riadok 6): Cesta k priečinku, kde sú súbory html, toto nechajme v / var / www /, pretože to bude iba test
Je zrejmé, že musia vo svojich záznamoch DNS svojho poskytovateľa hostiteľských služieb (pomocou CPanelu alebo iného nástroja) ukazovať na to, že doména alebo subdoména deklarovaná v serveri_name je umiestnená na IP tohto servera, ktorý konfigurujú. To znamená, že v DNS, kde vytvárajú subdomény pre svoju doménu, musia vyhlásiť, že doména alebo subdoména, ktorú vložili do riadku 5, sa nachádza na tomto serveri (tento server = adresa IP príslušného servera)

Teraz stačí skopírovať html súbor do priečinka, ktorý definujeme v našom súbore VHost, / var / www /:

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

Potom reštartujeme Nginx a je to:

service nginx restart

A voila, objaví sa niečo také:

nginx-pure-test-site-html

Pripomínam, že pracujeme najskôr s Nginx pre HTML, bez podpory PHP bude táto inštalácia PHP a jej prepojenie s Nginx obsahom nasledujúceho tutoriálu (sľubujem za pár dní).

Toto je každopádne návod na inštaláciu a konfiguráciu Nginx, aby fungoval čisto, teda web HTML, dúfam, že vás bude zaujímať.

Objasním, že áno, stále existujú osvedčené postupy, ktoré je možné použiť, počkajme však na dokončenie tejto série návodov a potom vyhodnotíme konečný výsledok práce 😉

pozdravy


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Nelson dijo

    Ďakujem, veľmi užitočné!

    1.    KZKG ^ Gaara dijo

      Ďakujem za komentár

  2.   lovec dijo

    V backportoch je nginx 1.4 ..

    1.    KZKG ^ Gaara dijo

      Áno, ale na produkčnom serveri nič z toho nepoužívam 😀

      1.    lovec dijo

        Pod pojmom „to“ rozumiete najnovšiu stabilnú a testovanú verziu vydanú nginx, vďaka čomu vydáte zvuk, akoby to bolo trefné zo strany sid. ~ _ ~

        1.    KZKG ^ Gaara dijo

          No tak, je to ... na serveroch, ktoré som nikdy nemal rád, keď som používal iné repo, alebo backporty alebo niečo podobné 🙂

      2.    Raphael Castro dijo

        To som sa pred rokmi dozvedel vždy stabilne na serveroch.

        1.    lovec dijo

          Nginx 1.4 je stabilný od minulého apríla, v backportoch je to 1.4.1-3.

          2013-04-24

          Bola vydaná stabilná verzia nginx-1.4.0, ktorá obsahuje mnoho nových funkcií vyvinutých v pobočke 1.3.x - podpora proxy servera pripojení WebSocket, zošívanie OCSP, modul SPDY, filter gunzip a ďalšie.

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

          1.    Raphael Castro dijo

            Máte pravdu v tom, čo hovoríte, môj klobúk je vypnutý.

  3.   chinoloco dijo

    Ďakujeme za zdieľanie, v súčasnosti zavádzam váš najstarší príspevok do praxe.
    Idem ťa naplniť otázkami XD

    1.    KZKG ^ Gaara dijo

      Ďakujem za prečítanie 🙂
      Ak máte nejaké otázky alebo obavy, viete, sme tu, aby sme vám pomohli, je tu fórum.desdelinux.net, kde sa vám spoločne pokúsime poskytnúť to najlepšie riešenie

      pozdravy

      1.    Gibran barrera dijo

        Mám otázku, na ktorej beží server LAMP [Linux (Debian Wheezy), Apache, PHP a MySQL] pre WordPress a Owncloud, ako migrujem na Ngnix, ďalšou otázkou je, aký je rozdiel medzi Ngnix a Lighttpd.

        1.    KZKG ^ Gaara dijo

          Najväčšou komplikáciou alebo problémom pri migrácii z Apache na Nginx sú konfigurácie jednotlivých webov, to znamená konkrétne .htaccess, ktorý používate.

          .Htaccess je pri prechode na Nginx najkomplexnejší, pretože ide o rôzne konfigurácie, ktoré musíte vložiť do Nginx VHost.

          O LightHTTPd a Nginx ... Neviem, LightHTTPd som použil iba raz pred mnohými rokmi, v súčasnosti vôbec netuším, ako prebieha jeho vývoj, konkrétne pomocou PHP.

  4.   eliotime3000 dijo

    NGINX vyzerá v porovnaní s Apache celkom jasne. Čaká sa na ďalšiu epizódu, ktorá ju bude môcť doplniť o PHP

  5.   Mauritius dijo

    Čakám na tipy, ako optimalizovať viac na nginx 😀

    Mimochodom, Gaara, do nasledujúceho tutoriálu môžete zahrnúť, ako implementovať podporu SSL.

    Zdravím.

    1.    KZKG ^ Gaara dijo

      Tipy, ktoré prichádzajú, sú v skutočnosti na optimalizáciu spracovania PHP, ukladanie stránok do vyrovnávacej pamäte, môžem uviesť príklad konfigurácie, ktorú používame v DesdeLinux pre Nginx+Wordpress+W3_Total_Cache :)

  6.   kaiser dijo

    Dakujem dobry prispevok.

  7.   Apr4xas dijo

    A sprievodca pre archlinux kedy? xD

    1.    KZKG ^ Gaara dijo

      V Arche to bolo veľmi podobné, menia sa iba názvy balíkov, ale ... conf je takmer identický

      Ale kto má produkčný server s Archom? 😀

  8.   Apr4xas dijo

    Ahoj,

    Opäť som to ja xD ...

    Sledoval som vaše kroky pri ich uplatňovaní na počítači s archlinuxom a mám nasledujúci problém:

    [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)

    Akékoľvek návrhy 😀

  9.   rhiz dijo

    Jo ... xox, chcem iba interný server, to znamená, že chcem vymeniť iba xampp, mám to urobiť všetko?

    1.    KZKG ^ Gaara dijo

      Ak chcete, môžete to implementovať (čo opakujem, s tým DL pracuje), vlastne môj virtuálny server (ktorý používam na vývoj a testovanie) mám urobený s rovnakou vecou, ​​ktorú vysvetľujem.

      To znamená, že môžete buď odstrániť XAMPP a vložiť tento variant, a bude to fungovať dobre, alebo ak chcete opustiť XAMPP ... bude to pre vás stále fungovať.

      Pozitívnym bodom jeho používania, ktorý ukazujem, je veľmi nízka spotreba hardvéru v porovnaní s Apache, ale na vašom osobnom počítači, ktorý nie je hostingom s vysokou požiadavkou, ďaleko od toho ... ak XAMPP pre vás funguje dobre, pozri, prečo to odstrániť 🙂

  10.   Isaac dijo

    Už mám spustený svoj server Linux (Debian, Nginx, MySQL a PHP). Bolo pre mňa ťažké dostať PHP do práce s Nginx, pretože som bol zvyknutý na jednoduchý webový server Apache.

    Moja otázka znie: Vie niekto, ako môžem nasmerovať testovanú doménu, ktorú som si kúpil, na svoj server? Chcel by som vyskúšať svoju doménu .com, aby som zistil, ako to funguje, ale nemám najmenšie tušenie, ako to urobiť, pretože na prístup k nej pomocou noip DUC som vždy používal adresu NOIP.

    Dúfam, že mi niekto pomôže, vďaka!

  11.   Abrahám dijo

    Toto sa mi zobrazuje pri pokuse o pripojenie k vášmu FTP:

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

    Žiadosť HTTP bola odoslaná a čaká na odpoveď ... 404 Nenašlo sa
    2015-11-23 17:46:30 CHYBA 404: Nenašlo sa.

  12.   Ryan dijo

    Mám spustený server na CentOS (Gunicorn, Nginx, PHP), aby som fungoval, trvalo mi veľa práce, ale narazil som na to, že webová stránka, ktorú chcem spustiť, potrebuje v tomto prípade konfiguráciu poskytovateľa domény Go Oci, takže v tejto chvíli neviem, ako mám pokračovať.

  13.   Ricardo dijo

    Mohli by ste so mnou zdieľať konfiguračné súbory, pretože ich nemôžem stiahnuť?