Cum se instalează un server web cu Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [a doua parte: Nginx]

Cu ceva timp în urmă V-am povestit despre această serie de tutoriale, despre cum se instalează și se configurează un server pentru găzduire cu cerere ridicată. Acest articol va fi despre instalarea și configurarea Nginx:

Nginx:

V-am spus deja despre Nginx mai devreme în articol Nginx: O alternativă interesantă la Apache, acolo v-am spus ca este un server web precum Apache, LightHttpd sau Cherokee, dar fata de Apache se remarca prin performanta si consumul redus de hardware, tocmai de ce multe site-uri mari precum Facebook, MyOpera.com, DropBox sau chiar WordPress .com folosește Nginx în loc de Apache. În lumea Linux DesdeLinux Nu este singurul care folosește Nginx, din câte știu eu îl folosesc și emsLinux și MuyLinux :)

Experiența mea personală cu Nginx datează de câțiva ani, când din necesitate am început să caut alternative ușoare la Apache. În acel moment, Nginx era pe versiunea 0.6 și compatibilitatea sa cu site-urile cu cerere ridicată făcute în PHP nu era cea mai optimă, totuși astăzi de la versiunea 0.9 încoace (v1.2.1 disponibil pe Debian Stable, v1.4.2 disponibil pe ArchLinux) s-a îmbunătățit mult, până la punctul că, cu o configurație și unire adecvate a Nginx + PHP, totul va funcționa ca un farmec.

În această serie de tutoriale Voi folosi versiunea Nginx 1.2.1-2.2, disponibil în depozitele Debian Stable (Wheezy).

Acest tutorial tratează numai și exclusiv despre Nginx, nu despre Nginx + PHP, uniunea Nginx + PHP, precum și optimizarea sau configurația necesară vor fi abordate în următorul tutorial

1. Instalare:

Vom începe cu primul lucru, instalăm Nginx din depozitele noastre.

Toate comenzile care vor fi executate sunt executate cu permisiuni root, fie prin plasarea sudo la începutul fiecărei linii, fie prin conectarea ca root

Dacă pe serverul dvs. utilizați o distribuție precum Debian, Ubuntu sau un derivat în terminal, trebuie să puneți următoarele și să apăsați Intrați :

aptitude install nginx

aptitude nu este instalat implicit în Ubuntu, totuși vă recomand să îl instalați și să îl utilizați în loc de apt-get, deoarece aptitude gestionează mai bine dependențele în anumite ocazii

În cazul în care utilizați o altă distribuție pe serverul dvs., cum ar fi CentOS, Red Hat, Fedora, pur și simplu instalați pachetul: nginx din depozitul oficial

Personal, nu recomand niciun derivat din Debian, nici măcar Ubuntu pentru servere, de-a lungul anilor experiențele mele nu au fost pe deplin satisfăcătoare. Prima mea alegere pentru sistemul de operare server este Debian, apoi m-aș gândi la CentOS, în cele din urmă niște BSD

2. Configurare:

Avem deja instalat Nginx, dar evident că trebuie să îl configuram. Am pregătit un fișier comprimat pe FTP care conține toate configurațiile care sunt folosite pe servere. DesdeLinux, atât pentru PHP, Nginx, etc. Să descarcăm și să dezarhivăm acel fișier:

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

Aceasta va crea un folder numit nginx-spawn-fastcgi, din acesta vom avea nevoie de două fișiere pentru Nginx pur (adică fără a-l lega la PHP):

  • nginx.conf - »Fișierul principal de configurare Nginx (despre conținutul său vom vorbi mai târziu)
  • index.html - »Un fișier html simplu pe care îl vom folosi pentru a vedea dacă Nginx funcționează cu adevărat pentru noi în forma sa de bază
  • mywebsite.net - »Fișier de configurare pentru un site web simplu, un VHost (Virtual Host) care va configura accesul la html-ul anterior

Să trecem mai întâi la folderul de setări Nginx:

cd /etc/nginx/

Apoi, să-i eliminăm configurația implicită și să o punem pe a noastră:

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

Acesta, așa cum am spus, este fișierul principal de configurare Nginx, în el am definit deja următoarele:

www-date utilizator; lucrător_procese 4; pid /var/run/nginx.pid;

Accesul utilizatorului la sistemul de fișiere (cu care nginx va accesa peste tot), numărul de procese cu care să lucreze și, de asemenea, PID (ID proces nginx).

De asemenea, avem acolo un mic bloc numit evenimente (setări pentru evenimente) care conține o linie care indică numărul maxim de conexiuni permise per eveniment. Mai jos este blocul numit http.

Acest bloc http este cel care conține aproape tot ce ține de găzduire, cel puțin multe lucruri care te vor interesa. De exemplu, timpul maxim de trăire sau de așteptare (timeout), unde vor fi jurnalele noastre generale (access.log și error.log), compresia datelor folosind gzip, precum și alte reguli care ar putea fi utile în viitor.

Odată ce fișierul principal de configurare este la locul său, să copiem fișierul din VHost-ul nostru în folderul site-uri disponibile

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

În plus, trebuie să facem o legătură simbolică din acest fișier către folderul cu site-uri activate.

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

Vă explic utilitatea de a avea site-uri activate și site-uri disponibile.

Vor găsi momente în care trebuie să aibă mai multe fișiere vhost pregătite și configurate, deoarece în acel server vor pune online, spun 5 site-uri. Cu toate acestea, se întâmplă că nu este încă timpul pentru a activa 2 dintre acești 5 vhosts, dar trebuie să aibă fișierele gata, astfel încât, atunci când este necesar, să fie online în cel mai scurt timp posibil. Puteți pune oricâți vhosts doriți în site-uri disponibile (site-uri disponibile), deoarece cele pe care Nginx le citește pentru a le pune online sunt doar cele ale site-urilor activate (site-uri activate), ar funcționa și în direcția opusă, în cazul în care doriți să puneți offline ( temporar, de exemplu) un site, nu este nevoie să ștergeți fișierele de pe serverul dvs. (fișiere de care vom avea nevoie altădată), eliminăm pur și simplu linkul simbolic al site-urilor activate și gata. Utilitatea de a avea legături simbolice și de a nu copia pur și simplu fișierul dintr-un folder în altul, este că atunci când dorim să edităm un vhost, nu contează dacă îl edităm pe cel situat în activat sau disponibil, în final este același
Arhiva.

Fișierul mywebsite.net așa cum am spus mai înainte, un vhost care servește ca exemplu, adică și cu alte cuvinte, trebuie să modificăm mywebsite.net și să stabilim configurațiile noastre.

Trebuie să schimbăm următoarele:

  • access_log (linia 3): Aceasta va fi calea fișierului jurnal de acces către acest site
  • error_log (linia 4): Aceasta va fi calea fișierului jurnal de erori către acest site
  • server_name (linia 5): URL-ul, domeniul care este găzduit în acel folder, de exemplu, dacă ar fi forumul DesdeLinux ar fi: forum server_name.desdelinux. Net
  • rădăcină (linia 6): calea către folderul în care sunt fișierele html, să lăsăm acest lucru în / var / www / deoarece va fi doar un test
Evident, trebuie să indice în înregistrările DNS ale furnizorului lor de găzduire (folosind CPanel sau alt instrument) că domeniul sau subdomeniul declarat în server_name se află pe IP-ul acestui server pe care îl configurează. Adică, în DNS în care creează subdomenii pentru domeniul lor, trebuie să declare că domeniul sau subdomeniul pe care l-au pus în linia 5 se află pe acest server (acest server = adresa IP a serverului în cauză)

Acum trebuie doar să copiem fișierul html în dosarul pe care îl definim în fișierul nostru VHost, / var / www /:

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

Apoi, repornim Nginx și gata:

service nginx restart

Și voilă, va apărea așa ceva:

nginx-pure-test-site-html

Vă reamintesc că lucrăm mai întâi cu Nginx pentru HTML, fără a avea suport PHP, această instalare PHP și conectarea la Nginx va fi conținutul următorului tutorial (în câteva zile, vă promit).

Oricum, acesta este tutorialul de instalare și configurare Nginx, astfel încât să funcționeze pur, adică un site HTML, sper să vă fie de interes.

Voi clarifica că da, există încă cele mai bune practici care pot fi folosite, totuși să așteptăm să terminăm această serie de tutoriale și apoi vom evalua rezultatul final al lucrului

În ceea ce priveşte


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Nelson el a spus

    Mulțumesc, foarte util!

    1.    KZKG ^ Gaara el a spus

      Vă mulțumesc pentru comentariu

  2.   dhunter el a spus

    În backporturi există nginx 1.4 ..

    1.    KZKG ^ Gaara el a spus

      Da, dar pe un server în producție nu folosesc nimic din asta that

      1.    dhunter el a spus

        Prin „asta” înțelegeți cea mai recentă versiune stabilă și testată lansată de nginx, o faceți să pară apt-pinning de la sid. ~ _ ~

        1.    KZKG ^ Gaara el a spus

          Oh, haide, este că ... pe serverele nu mi-a plăcut niciodată să folosesc alte repo, sau backporturi sau ceva de genul ăsta 🙂

      2.    Rafael Castro el a spus

        Întotdeauna stabil pe servere, am aflat asta cu ani în urmă.

        1.    dhunter el a spus

          Nginx 1.4 este stabil din aprilie trecut, în backporturi este 1.4.1-3.

          2013-04-24

          Versiunea stabilă nginx-1.4.0 a fost lansată, încorporând multe funcții noi dezvoltate în ramura 1.3.x - suport pentru proxy-ul conexiunilor WebSocket, capsare OCSP, modul SPDY, filtru gunzip și multe altele.

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

          1.    Rafael Castro el a spus

            Ai dreptate în ceea ce spui, căciula mea este închisă.

  3.   chinoloco el a spus

    Vă mulțumim pentru distribuire, în prezent pun în practică cea mai veche postare.
    Vă voi umple cu întrebări XD

    1.    KZKG ^ Gaara el a spus

      Vă mulțumim că ați citit 🙂
      Dacă aveți întrebări sau nelămuriri, știți, suntem aici pentru a vă ajuta, acolo este forumul.desdelinux.net unde împreună vom încerca să vă oferim cea mai bună soluție

      În ceea ce priveşte

      1.    Gibran barrera el a spus

        Am o întrebare am LAMP [Linux (Debian Wheezy), Apache, PHP și MySQL] care rulează pe serverul meu pentru WordPress și Owncloud, cum migrez către Ngnix, o altă întrebare este ce diferență există între Ngnix și Lighttpd.

        1.    KZKG ^ Gaara el a spus

          Cea mai mare complicație sau dificultate pentru migrarea de la Apache la Nginx sunt configurațiile fiecărui site, adică în special .htaccess-ul pe care îl utilizați.

          .Htaccess este cel mai complex atunci când comutați la Nginx, deoarece acestea sunt configurații diferite pe care trebuie să le puneți în Nginx VHost.

          Despre LightHTTPd și Nginx ... Nu știu, am folosit LightHTTPd doar o dată în urmă cu mulți ani, în prezent nu am nici o idee despre cum se dezvoltă, în special folosind PHP.

  4.   eliotime3000 el a spus

    NGINX arată destul de simplu în comparație cu Apache. Așteptăm ca următorul episod să îl poată completa cu PHP

  5.   Mauritius el a spus

    Aștept sfaturile pentru a optimiza mai mult pentru nginx 😀

    Apropo, Gaara, puteți include în următorul tutorial cum să implementați suport SSL.

    Salutări.

    1.    KZKG ^ Gaara el a spus

      Sfaturile care vin sunt de fapt pentru a optimiza procesarea PHP, caching-ul site-ului, pot da exemplul configurației pe care o folosim în DesdeLinux pentru Nginx+Wordpress+W3_Total_Cache :)

  6.   kaiser el a spus

    Mulțumesc contribuție bună.

  7.   Apr4xas el a spus

    Și ghidul pentru archlinux când? xD

    1.    KZKG ^ Gaara el a spus

      În Arch a fost foarte similar, doar numele pachetelor se schimbă, dar ... conf este aproape identic

      Dar cine are un server de producție cu Arch? 😀

  8.   Apr4xas el a spus

    Salut,

    Sunt eu din nou xD ...

    Am urmat pașii dvs. aplicându-i pe o mașină cu archlinux și am următoarea 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)

    Orice sugestie 😀

  9.   rhiz el a spus

    Jo ... xox, vreau doar un server intern, adică vreau doar să înlocuiesc xampp, ar trebui să fac toate acestea?

    1.    KZKG ^ Gaara el a spus

      Dacă doriți, puteți implementa acest lucru (pe care îl repet, este cu ce funcționează DL), de fapt serverul meu virtual (pe care îl folosesc pentru dezvoltare și testare) l-am făcut cu același lucru pe care îl explic.

      Adică, puteți fie să eliminați XAMPP și să puneți această variantă și va funcționa bine, fie dacă doriți să părăsiți XAMPP ... va funcționa în continuare pentru dvs.

      Punctul pozitiv al utilizării acestui lucru pe care îl prezint este consumul foarte scăzut de hardware în comparație cu Apache, dar, pe computerul dvs. personal, care nu este o cerere mare de găzduire, departe de el ... dacă XAMPP funcționează bine pentru dvs., nu vezi de ce îl elimini 🙂

  10.   Isaac el a spus

    Am deja serverul meu Linux care rulează (Debian, Nginx, MySQL și PHP) Mi-a fost greu să obțin PHP să funcționeze cu Nginx pentru că eram obișnuit cu serverul web simplu Apache.

    Ei bine, întrebarea mea este: Știe cineva cum pot îndrepta către serverul meu un domeniu de testare pe care l-am cumpărat? Aș vrea să încerc domeniul meu .com pentru a vedea cum funcționează, dar nu am nici cea mai mică idee despre cum să o fac, deoarece am folosit întotdeauna o adresă NOIP pentru a o accesa cu noip DUC.

    Sper că cineva mă poate ajuta, Mulțumesc!

  11.   Avraam el a spus

    Obțin acest lucru când încerc să mă conectez la ftp-ul tău:

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

    Cerere HTTP trimisă, în așteptarea răspunsului ... 404 Nu a fost găsit
    2015-11-23 17:46:30 EROARE 404: Nu a fost găsit.

  12.   Ryan el a spus

    Am serverul CentOS rulat (Gunicorn, Nginx, PHP) mi-a luat multă muncă ca să-i fac să funcționeze, dar punctul în care am rămas blocat este că pagina web pe care vreau să o lansez are nevoie de configurația furnizorului de domeniu în acest caz , Deci, în acest moment nu știu cum să continui.

  13.   Ricardo el a spus

    Ați putea partaja fișierele de configurare cu mine, deoarece nu le pot descărca, vă rog