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

Një kohë më parë Unë ju thashë për këtë seri udhëzimesh, mbi mënyrën e instalimit dhe konfigurimit të një serveri për një pritje me kërkesë të lartë. Ky artikull do të ketë të bëjë me instalimin dhe konfigurimin e Nginx:

nginx:

Ne tashmë ju thamë për Nginx më herët në artikull Nginx: Një alternativë interesante për Apache, aty ju thamë që është një web server si Apache, LightHttpd apo Cherokee, por në krahasim me Apache dallohet për performancën dhe konsumin e ulët të harduerit, pikërisht pse shumë site të mëdha si Facebook, MyOpera.com, DropBox apo edhe WordPress. .com përdor Nginx në vend të Apache. Në botën e Linux DesdeLinux Nuk është i vetmi që përdor Nginx, me sa di unë, emsLinux dhe MuyLinux e përdorin gjithashtu :)

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

Ky udhëzim merret vetëm dhe ekskluzivisht për Nginx, jo për Nginx + PHP, bashkimi i Nginx + PHP, si dhe optimizimi i tij ose konfigurimi i nevojshëm do të adresohen në tutoriali tjetër

1. Instalimi:

Ne do të fillojmë me gjënë e parë, të instalojmë Nginx nga depot tona.

Të gjitha komandat që do të ekzekutohen ekzekutohen me leje rrënjë, ose duke vendosur sudo në fillim të secilës rresht ose duke u regjistruar si root

Nëse në serverin tuaj përdorni një shpërndarje të tillë si Debian, Ubuntu ose ndonjë derivat në terminal duhet të vendosni sa vijon dhe shtypni Shkruani :

aptitude install nginx

aftësia nuk është instaluar si parazgjedhje në Ubuntu, megjithatë ju rekomandoj ta instaloni dhe ta përdorni në vend të apt-get, pasi aftësia bën menaxhim më të mirë të varësive në raste të caktuara

Në rast se përdorni një shpërndarje tjetër në serverin tuaj si CentOS, Red Hat, Fedora, thjesht instaloni paketën: nginx nga depoja zyrtare

Personalisht, unë nuk rekomandoj ndonjë derivat të Debian, madje as Ubuntu për serverat, me kalimin e viteve përvojat e mia nuk kanë qenë plotësisht të kënaqshme. Zgjedhja ime e parë për sistemin operativ të serverit është Debian, atëherë do të mendoja për CentOS, më në fund disa BSD

2. Konfigurimi:

Ne kemi tashmë të instaluar Nginx, por padyshim që duhet ta konfigurojmë atë. Unë kam përgatitur një skedar të ngjeshur në FTP i cili përmban të gjitha konfigurimet që përdoren në serverë. DesdeLinux, si për PHP, Nginx, etj. Le të shkarkojmë dhe shkyçim atë skedar:

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

Kjo do të krijojë një dosje të quajtur nginx-spawn-fastcgi, prej tij do të na duhen dy skedarë për Nginx të pastër (domethënë, pa e lidhur atë me PHP):

  • nginx.conf - »Skedari kryesor i konfigurimit të Nginx (do të flasim më vonë për përmbajtjen e tij)
  • index.html - »Një skedar i thjeshtë html që do ta përdorim për të parë nëse Nginx funksionon vërtet për ne në formën e tij më themelore
  • mywebsite.net - »Skedari i konfigurimit për një faqe në internet të thjeshtë, një VHost (Pritësi Virtual) që do të konfigurojë hyrjen në html të mëparshëm

Le të kalojmë së pari në dosjen e cilësimeve të Nginx:

cd /etc/nginx/

Atëherë le të heqim konfigurimin e tij të paracaktuar dhe të vendosim tonën:

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

Ky, siç thashë, është skedari kryesor i konfigurimit të Nginx, në të kam përcaktuar tashmë sa vijon:

të dhëna www të përdoruesit; proceset e punëtorëve 4; pid /var/run/nginx.pid;

Aksesi i përdoruesit në sistemin e skedarëve (me të cilin nginx do të ketë qasje kudo), numri i proceseve për të punuar dhe gjithashtu PID (nginx id i procesit).

Ne gjithashtu kemi atje një bllok të vogël të quajtur ngjarje (cilësimet për ngjarjet) që përmban një linjë që tregon numrin maksimal të lidhjeve të lejuara për një ngjarje. Më poshtë është blloku i quajtur http.

Ky bllok http është ai që përmban pothuajse gjithçka që lidhet me pritjen, të paktën shumë gjëra që do t'ju interesojnë. Për shembull, koha maksimale për të jetuar ose pritur (koha e ndërprerjes), ku do të jenë regjistrat tanë të përgjithshëm (access.log dhe error.log), kompresimi i të dhënave duke përdorur gzip, si dhe rregulla të tjera që mund të jenë të dobishme në të ardhmen.

Pasi skedari kryesor i konfigurimit të jetë në vend, le të kopjojmë skedarin nga VHost tonë në dosjen e disponueshme për faqet

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

Gjithashtu, ne duhet të bëjmë një lidhje simbolike nga kjo skedar në dosjen e mundësuar nga faqet.

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

Unë shpjegoj dobinë e të pasurit faqet e aktivizuara dhe faqet e disponueshme.

Ata do të gjejnë momente kur duhet të kenë gati dhe konfiguruar disa skedarë vhost, sepse në atë server ata do të vendosin në internet, të themi 5 site. Sidoqoftë, ndodh që nuk është ende koha për të mundësuar 2 nga ato 5 vhost, por ata duhet të kenë gati skedarët në mënyrë që kur është e nevojshme të jenë në internet në kohën më të shkurtër të mundshme. Ata mund të vendosin aq shumë vhost që duan në faqet e disponueshme, pasi ato që Nginx lexon për të vendosur në internet janë vetëm ato të faqeve të mundësuara, do të funksiononte gjithashtu në drejtim të kundërt, në rast se ata duan të vendosin jashtë linje ( përkohësisht për shembull) një sit, nuk ka nevojë të fshini skedarët nga serveri juaj (skedarët që do të na duhen më vonë), ne thjesht heqim lidhjen simbolike të faqeve të aktivizuara dhe kaq. Dobia e të pasurit lidhje simbolike dhe jo thjesht kopjimi i skedarit nga një dosje në tjetrën, është se kur duam të redaktojmë një vhost, nuk ka rëndësi nëse editojmë atë që gjendet në të aktivizuar ose të disponueshëm, në fund të fundit është e njëjta gjë
Arkivi.

Skedari mywebsite.net siç e kisha thënë më parë, një vhost që shërben si një shembull, domethënë, dhe me fjalë të tjera, ne duhet të modifikojmë mywebsite.net dhe të vendosim konfigurimet tona.

Ne duhet të ndryshojmë sa vijon:

  • access_log (rreshti 3): Kjo do të jetë rruga e skedarit të regjistrit të hyrjes në këtë sit
  • error_log (rreshti 4): Kjo do të jetë rruga e skedarit të regjistrit të gabimit në këtë sit
  • Emri_server (rreshti 5): URL-ja, domeni që ndodhet në atë dosje, për shembull, nëse do të ishte forumi DesdeLinux do të ishte: emri_server i forumit.desdelinux. Net
  • root (rreshti 6): Rruga për tek dosja ku ndodhen skedarët html, le ta lëmë këtë në / var / www / pasi do të jetë vetëm një provë
Padyshim që ata duhet të tregojnë në regjistrat e tyre të DNS të ofruesit të tyre të pritjes (duke përdorur CPanel ose një mjet tjetër) që domeni ose nën-domeni i deklaruar në emrin e serverit ndodhet në IP të këtij serveri që ata po konfigurojnë. Kjo është, në DNS ku ata krijojnë nën-domene për domenin e tyre, ata duhet të deklarojnë se domeni ose nën-domeni që ata kanë vendosur në rreshtin 5 ndodhet në këtë server (ky server = adresa IP e serverit në fjalë)

Tani thjesht duhet të kopjojmë skedarin html në dosjen që përcaktojmë në skedarin tonë VHost, / var / www /:

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

Pastaj ne rifillojmë Nginx dhe kjo është e gjitha:

service nginx restart

Dhe voila, diçka e tillë do të shfaqet:

nginx-pastër-test-site-html

Unë ju kujtoj se ne jemi duke punuar së pari me Nginx për HTML, pa pasur mbështetje PHP, kjo instalon PHP dhe lidh atë me Nginx do të jetë përmbajtja e udhëzuesit tjetër (për disa ditë, unë premtoj).

Sidoqoftë, ky është manuali i instalimit dhe konfigurimit i Nginx në mënyrë që të funksionojë i pastër, domethënë një faqe HTML, shpresoj se do të jetë me interes për ju.

Unë do të sqaroj se po, ka ende praktika më të mira që mund të vihen në përdorim, megjithatë, le të presim për të përfunduar këtë seri mësimesh dhe pastaj do të vlerësojmë rezultatin përfundimtar të punës 😉

të fala


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.   kapje me duart pas zverkut të kundërshtarit dijo

    Faleminderit, shumë e dobishme!

    1.    KZKG ^ Gaara dijo

      Faleminderit per koment

  2.   dhunues dijo

    Në backport ka nginx 1.4 ..

    1.    KZKG ^ Gaara dijo

      Po, por në një server në prodhim nuk përdor asgjë nga ato

      1.    dhunues dijo

        Me "atë" nënkuptoni versionin e fundit të qëndrueshëm dhe të testuar të lëshuar nga nginx, ju e bëni atë të tingëllojë si të jetë i prirur nga sid. ~ _

        1.    KZKG ^ Gaara dijo

          Ah hajde, a është ... në serverat kurrë nuk më ka pëlqyer të përdorë repo të tjera, ose backport ose diçka të tillë

      2.    Rafael Kastro dijo

        Gjithmonë i qëndrueshëm në servera, e kam mësuar këtë vite më parë.

        1.    dhunues dijo

          Nginx 1.4 është i qëndrueshëm që nga Prilli i kaluar, në backport është 1.4.1-3.

          2013-04-24

          është lëshuar versioni i qëndrueshëm nginx-1.4.0, duke përfshirë shumë karakteristika të reja të zhvilluara në degën 1.3.x - mbështetje për proxying e lidhjeve WebSocket, stapling OCSP, modul SPDY, filtër gunzip dhe më shumë.

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

          1.    Rafael Kastro dijo

            Ju keni të drejtë në atë që thoni, kapela ime është hequr.

  3.   chinoloco dijo

    Faleminderit për ndarjen, aktualisht po e vë në praktikë postimin tuaj më të vjetër.
    Do të të mbush me pyetje XD

    1.    KZKG ^ Gaara dijo

      Faleminderit për leximin
      Nëse keni ndonjë pyetje apo shqetësim, e dini, ne jemi këtu për t'ju ndihmuar, atje është forumi.desdelinux.net ku së bashku do të përpiqemi t'ju japim zgjidhjen më të mirë

      të fala

      1.    Gibran barrera dijo

        Kam një pyetje që kam LAMP [Linux (Debian Wheezy), Apache, PHP dhe MySQL] që ekzekutohet në serverin tim për WordPress dhe Owncloud, si mund të migroj në Ngnix, një pyetje tjetër është se çfarë ndryshimi ka midis Ngnix dhe Lighttpd.

        1.    KZKG ^ Gaara dijo

          Komplikimi ose vështirësia më e madhe për të migruar nga Apache në Nginx janë konfigurimet e secilës faqe, domethënë specifikisht .htaccess që përdorni.

          .Htaccess është më kompleksi kur kaloni në Nginx, pasi ato janë konfigurime të ndryshme që duhet të vendosni në Nginx VHost.

          Rreth LightHTTPd dhe Nginx… Nuk e di, kam përdorur LightHTTPd vetëm një herë shumë vite më parë, aktualisht nuk kam ide se si po zhvillohet, veçanërisht duke përdorur PHP.

  4.   eliotime3000 dijo

    NGINX duket mjaft i thjeshtë në krahasim me Apache. Në pritje të episodit tjetër që të jetë në gjendje ta plotësojë atë me PHP

  5.   Lojra dijo

    Unë jam duke pritur për këshilla për të zgjedh më shumë për nginx

    Nga rruga Gaara, ju mund të përfshini në tutorialin tuaj të ardhshëm, si të zbatoni mbështetjen SSL.

    Përshëndetje.

    1.    KZKG ^ Gaara dijo

      Këshillat që vijnë janë në fakt për të optimizuar përpunimin e PHP-së, memorien e faqes, mund të jap shembullin e konfigurimit që përdorim në DesdeLinux për Nginx+Wordpress+W3_Total_Cache :)

  6.   Kaizër dijo

    Faleminderit kontribut të mirë

  7.   Prill4xas dijo

    Dhe udhëzuesi për archlinux kur? xD

    1.    KZKG ^ Gaara dijo

      Në Arch ka qenë shumë e ngjashme, vetëm emrat e paketave ndryshojnë por ... konf është pothuajse identik

      Por kush ka një server prodhimi me Arch? 😀

  8.   Prill4xas dijo

    Hi there,

    Unë jam përsëri xD ...

    Po ndiqja hapat tuaj duke i zbatuar ato në një makinë me archlinux dhe kam problemin e mëposhtë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)

    Ndonjë sugjerim

  9.   rhiz dijo

    Jo ... xox, unë dua vetëm një server të brendshëm, domethënë, unë dua të zëvendësoj vetëm xampp, duhet t'i bëj të gjitha këto?

    1.    KZKG ^ Gaara dijo

      Nëse dëshironi mund ta zbatoni këtë (gjë që unë e përsëris, është ajo me të cilën punon DL), në fakt serveri im virtual (të cilin unë e përdor për zhvillim dhe testim) e kam bërë me të njëjtën gjë që shpjegoj.

      Domethënë, ose mund të hiqni XAMPP dhe ta vendosni këtë variant dhe do të funksionojë mirë, ose nëse dëshironi të largoheni nga XAMPP ... ai do të funksionojë akoma për ju.

      Pika pozitive e përdorimit të kësaj që unë tregoj është konsumi shumë i ulët i pajisjeve në krahasim me Apache, por, në kompjuterin tuaj personal, i cili nuk është një pritje me kërkesë të lartë, larg… nëse XAMPP punon mirë për ju, nuk e shoh pse ta hiqni atë

  10.   Isaac dijo

    Unë tashmë kam serverin tim Linux që ekzekutohet (Debian, Nginx, MySQL dhe PHP) e kisha të vështirë ta bëja PHP të punonte me Nginx sepse isha mësuar me Web Server-in e thjeshtë Apache.

    Pyetja ime është: A e di dikush se si mund ta drejtoj serverin tim për një domain test që kam blerë? Unë do të doja të provoja domenin tim .com për të parë se si funksionon, por nuk kam idenë më të vogël se si ta bëj atë, sepse gjithmonë kam përdorur një adresë NOIP për të hyrë në të me noip DUC.

    Shpresoj që dikush të më ndihmojë, Faleminderit!

  11.   abraham dijo

    E marr këtë kur përpiqem të lidhem me ftp-in tuaj:

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

    Kërkesa HTTP u dërgua, në pritje të përgjigjes… 404 Nuk u gjet
    GABIM 2015: Nuk u gjet.

  12.   Ryan dijo

    Unë kam serverin tim CentOS të ekzekutuar (Gunicorn, Nginx, PHP) më është dashur shumë punë për t'i bërë që të funksionojnë, por pika ku kam ngecur është se faqja në internet që dua të lëshoj ka nevojë për konfigurimin e ofruesit të domenit në këtë rast Go Daddy Kështu që në këtë pikë nuk di si të vazhdoj.

  13.   Ricardo dijo

    A mund t'i ndani skedarët e konfigurimit me mua pasi nuk mund t'i shkarkoj, ju lutem