Slik installerer du en webserver med Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [2. del: Nginx]

For en tid siden Jeg fortalte deg om denne veiledningen, om hvordan du installerer og konfigurerer en server for hosting med høy etterspørsel. Denne artikkelen vil handle om å installere og konfigurere Nginx:

Nginx:

Vi har allerede fortalt deg om Nginx tidligere i artikkelen Nginx: Et interessant alternativ til Apache, ahí les comentamos que es un servidor web como Apache, LightHttpd o Cherokee, pero que comparado con Apache destaca por su rendimiento y bajo consumo de hardware, precisamente por eso es que muchos sitios grandes como Facebook, MyOpera.com, DropBox o inclusive WordPress.com usan Nginx en vez de Apache. En el mundillo de Linux DesdeLinux no es el único que usa Nginx, hasta donde sé, emsLinux y MuyLinux también lo usan 🙂

Min personlige erfaring med Nginx stammer fra flere år, da jeg av nødvendighet begynte å lete etter lette alternativer til Apache. På den tiden gikk Nginx for versjon 0.6, og dens kompatibilitet med nettsteder med høy etterspørsel laget i PHP var ikke den mest optimale, men i dag fra versjon 0.9 og utover (v1.2.1 tilgjengelig på Debian Stable, v1.4.2 tilgjengelig på ArchLinux) har forbedret seg mye, til det punktet at med en riktig konfigurasjon og forening av Nginx + PHP vil alt fungere som en sjarm.

I denne opplæringsserien Jeg vil bruke Nginx versjon 1.2.1-2.2, tilgjengelig i Debian Stable repos (Wheezy).

Denne opplæringen handler bare og utelukkende om Nginx, ikke om Nginx + PHP, foreningen av Nginx + PHP samt optimalisering eller nødvendig konfigurasjon vil bli adressert i neste opplæring

1. Installasjon:

Vi begynner med det første, installere Nginx fra våre arkiver.

Alle kommandoene som skal utføres kjøres med rottillatelser, enten ved å sette sudo i begynnelsen av hver linje eller ved å være logget inn som root

Hvis du bruker en distribusjon som på Debian, Ubuntu eller andre derivater på terminalen din, må du sette følgende og trykke Enter :

aptitude install nginx

aptitude er ikke installert som standard i Ubuntu, men jeg anbefaler at du installerer den og bruker den i stedet for apt-get, da aptitude gjør bedre styring av avhengigheter ved visse anledninger

Hvis du bruker en annen distribusjon på serveren din, for eksempel CentOS, Red Hat, Fedora, installerer du bare pakken: nginx fra det offisielle depotet

Personlig anbefaler jeg ikke noe derivat av Debian, ikke engang Ubuntu for servere, gjennom årene har erfaringene mine ikke helt tilfredsstillende. Mitt første valg for serveroperativsystemer er Debian, så vil jeg tenke på CentOS, til slutt noen BSD

2. Konfigurasjon:

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

Dette vil opprette en mappe som heter nginx-spawn-fastcgi, fra den trenger vi to filer for ren Nginx (det vil si uten å koble den til PHP):

  • nginx.conf - »Hoved Nginx konfigurasjonsfil (vi snakker om innholdet senere)
  • index.html - »En enkel html-fil som vi vil bruke til å se om Nginx virkelig fungerer for oss i sin mest grunnleggende form
  • mywebsite.net - »Konfigurasjonsfil for et enkelt nettsted, en VHost (Virtual Host) som vil konfigurere tilgang til forrige html

La oss først gå til Nginx-innstillingsmappen:

cd /etc/nginx/

Så la oss fjerne standardkonfigurasjonen og sette vår egen:

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

Dette, som jeg sa, er den viktigste Nginx-konfigurasjonsfilen, i den har jeg allerede definert følgende:

brukerens www-data; arbeider_prosesser 4; pid /var/run/nginx.pid;

Brukertilgang til filsystemet (som nginx vil få tilgang til overalt), antall prosesser å jobbe med og også PID (nginx prosess-id).

Vi har også en liten blokk kalt hendelser (innstillinger for hendelser) som inneholder en linje som angir maksimalt antall tilkoblinger per hendelse. Nedenfor er blokken kalt http.

Denne http-blokken er den som inneholder nesten alt relatert til hosting, i det minste mange ting som vil interessere deg. For eksempel den maksimale tiden for å leve eller vente (timeout), hvor vil våre generelle logger (access.log og error.log) være, datakomprimering ved hjelp av gzip, så vel som andre regler som kan være nyttige i fremtiden.

Når hovedkonfigurasjonsfilen er på plass, la oss kopiere filen fra VHost til mappen som er tilgjengelig for nettsteder

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

Vi må også lage en symbolsk lenke fra denne filen til den nettstedsaktiverte mappen.

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

Jeg forklarer nytten av å ha nettstedsaktiverte og nettsteder tilgjengelige.

De vil finne øyeblikk når de må ha flere vhost-filer klare og konfigurert, for på den serveren vil de sette på nettet, for eksempel fem nettsteder. Det hender imidlertid at det ennå ikke er på tide å aktivere 5 av de 2 hostene, men de må ha filene klare slik at når det er nødvendig, er de online på kortest mulig tid. Du kan plassere så mange vhosts du vil i nettsteder-tilgjengelige (nettsteder-tilgjengelige), fordi de som Nginx leser for å sette online er bare de som er nettsteder-aktiverte (nettsteder-aktiverte), det vil også fungere i motsatt retning, i tilfelle du ønsker å plassere offline (midlertidig for eksempel) et nettsted, er det ikke nødvendig å slette filer fra serveren din (filer som vi trenger et annet tidspunkt), vi fjerner ganske enkelt den symbolske lenken til nettstedsaktiverte og det er det. Nytten ved å ha symbolske lenker og ikke bare kopiere filen fra en mappe til en annen, er at når vi vil redigere en vhost, spiller det ingen rolle om vi redigerer den som er aktivert eller tilgjengelig, til slutt er det det samme
arkiv.

Filen mywebsite.net som jeg hadde sagt tidligere, en vhost som fungerer som et eksempel, det vil si og med andre ord, vi må endre mywebsite.net og etablere våre konfigurasjoner.

Vi må endre følgende:

  • access_log (linje 3): Dette vil være stien til tilgangsloggfilen til dette nettstedet
  • error_log (linje 4): Dette vil være banen til feilloggfilen til dette nettstedet
  • server_name (línea 5): La URL, dominio que está hosteado en esa carpeta, por ejemplo, si se tratase del foro de DesdeLinux sería: server_name foro.desdelinux. Net
  • root (linje 6): Stien til mappen der html-filene er, la oss la dette være i / var / www / da det bare vil være en test
Åpenbart må de peke i DNS-postene til vertsleverandøren (ved hjelp av CPanel eller et annet verktøy) at domenet eller underdomenet deklarert i servernavn ligger på IP-en til denne serveren som de konfigurerer. Det vil si at i DNS der de oppretter underdomener for domenet sitt, må de erklære at domenet eller underdomenet de har lagt i linje 5 ligger på denne serveren (denne serveren = IP-adressen til den aktuelle serveren)

Nå trenger vi bare å kopiere html-filen til mappen som vi definerer i VHost-filen / var / www /:

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

Deretter starter vi Nginx på nytt, og det er det:

service nginx restart

Og voila, noe slikt vil dukke opp:

nginx-pure-test-site-html

Jeg minner deg om at vi jobber først med Nginx for HTML, uten å ha PHP-støtte. Denne installasjonen av PHP og kobling til Nginx vil være innholdet i neste opplæring (om noen få dager, lover jeg).

Uansett, dette er installasjons- og konfigurasjonsveiledningen for Nginx slik at den fungerer ren, det vil si et HTML-nettsted, jeg håper det vil være av interesse for deg.

Jeg vil tydeliggjøre at ja, det er fortsatt beste fremgangsmåter som kan brukes, men la oss vente med å fullføre denne serien med veiledninger, og så vil vi evaluere det endelige resultatet av arbeidet 😉

Hilsen


26 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Nelson sa

    Takk, veldig nyttig!

    1.    KZKG ^ Gaara sa

      Takk for kommentaren

  2.   dhunter sa

    I backports er det nginx 1.4 ..

    1.    KZKG ^ Gaara sa

      Ja, men på en produksjonsserver bruker jeg ikke noe av det 😀

      1.    dhunter sa

        Med "det" mener du den siste stabile og testede versjonen som ble utgitt av nginx, du får det til å høres ut som om det passer godt fra siden. ~ _ ~

        1.    KZKG ^ Gaara sa

          Ah kom igjen, er det ... på serverne har jeg aldri likt å bruke andre repoer, eller backports eller noe sånt

      2.    Raphael Castro sa

        Alltid stabil på servere, det lærte jeg for mange år siden.

        1.    dhunter sa

          Nginx 1.4 er stabil siden april i fjor, i backports er den 1.4.1-3.

          2013-04-24

          nginx-1.4.0 stabil versjon er utgitt, og inneholder mange nye funksjoner utviklet i 1.3.x-grenen - støtte for proxying av WebSocket-tilkoblinger, OCSP-stifting, SPDY-modul, pistolfilter og mer.

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

          1.    Raphael Castro sa

            Du har rett i det du sier, hatten min er av.

  3.   chinoloco sa

    Takk for delingen, jeg implementerer for øyeblikket ditt eldste innlegg.
    Jeg skal fylle deg med spørsmål XD

    1.    KZKG ^ Gaara sa

      Takk for at du leser 🙂
      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

      Hilsen

      1.    Gibran barrera sa

        Jeg har et spørsmål jeg har LAMP [Linux (Debian Wheezy), Apache, PHP og MySQL] som kjører på serveren min for WordPress og Owncloud. Hvordan migrerer jeg til Ngnix, et annet spørsmål er hvilken forskjell det er mellom Ngnix og Lighttpd.

        1.    KZKG ^ Gaara sa

          Den største komplikasjonen eller vanskeligheten med å migrere fra Apache til Nginx er konfigurasjonene til hvert nettsted, det vil si spesifikt .htaccess du bruker.

          .Htaccess er den mest komplekse når du bytter til Nginx, siden de er forskjellige konfigurasjoner som du må sette i Nginx VHost.

          Om LightHTTPd og Nginx ... Jeg vet ikke, jeg brukte LightHTTPd bare en gang for mange år siden, for øyeblikket aner jeg ikke hvordan utviklingen går, spesielt ved bruk av PHP.

  4.   eliotime3000. sa

    NGINX ser ganske greit ut sammenlignet med Apache. Venter på at neste episode skal kunne komplettere den med PHP

  5.   Mauritius sa

    Jeg venter på tipsene for å optimalisere mer til nginx 😀

    Forresten Gaara, du kan inkludere i neste opplæring hvordan du implementerer SSL-støtte.

    Hilsener.

    1.    KZKG ^ Gaara sa

      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 sa

    Takk for godt bidrag.

  7.   Apr4xas sa

    Og guiden for archlinux når? xD

    1.    KZKG ^ Gaara sa

      I Arch har det vært veldig likt, bare navnene på pakkene endres, men ... conf er nesten identisk

      Men hvem har en produksjonsserver med Arch? 😀

  8.   Apr4xas sa

    Hei der,

    Det er meg igjen xD ...

    Jeg fulgte trinnene dine ved å bruke dem på en maskin med archlinux, og jeg har følgende 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)

    Eventuelle forslag 😀

  9.   rhiz sa

    Jo ... xox, jeg vil bare ha en intern server, det vil si at jeg bare vil erstatte xampp, skal jeg gjøre alt dette?

    1.    KZKG ^ Gaara sa

      Hvis du ønsker det, kan du implementere dette (som jeg gjentar, det er det DL jobber med), faktisk min virtuelle server (som jeg bruker til utvikling og testing). Jeg har gjort det med det samme som jeg forklarer.

      Det vil si at du enten kan fjerne XAMPP og sette denne varianten, og den vil fungere bra, eller hvis du vil forlate XAMPP ... vil den fremdeles fungere for deg.

      Det positive poenget med å bruke dette som jeg viser er det veldig lave forbruket av maskinvare sammenlignet med Apache, men på din personlige datamaskin, som ikke er et høyt behov for hosting, langt fra det ... hvis XAMPP fungerer bra for deg, gjør jeg ikke det se hvorfor fjerne den 🙂

  10.   Isaac sa

    Jeg har allerede kjørt Linux-serveren min (Debian, Nginx, MySQL og PHP). Jeg hadde vanskelig for å få PHP til å jobbe med Nginx fordi jeg var vant til den enkle Apache Web Server.

    Vel, spørsmålet mitt er: Er det noen som vet hvordan jeg kan peke et testdomene som jeg har kjøpt til serveren min? Jeg vil prøve mitt .com-domene for å se hvordan det fungerer, men jeg aner ikke hvordan jeg skal gjøre det, fordi jeg alltid har brukt en NOIP-adresse for å få tilgang til den med noip DUC.

    Jeg håper noen kan hjelpe meg, takk!

  11.   Abraham sa

    Jeg får dette når jeg prøver å koble til ftp:

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

    HTTP-forespørsel sendt, avventer svar ... 404 ble ikke funnet
    2015-11-23 17:46:30 FEIL 404: Ikke funnet.

  12.   Ryan sa

    Jeg har kjørt CentOS-serveren min (Gunicorn, Nginx, PHP), det tok meg mye arbeid å få dem til å fungere, men poenget der jeg ble sittende fast er at websiden jeg vil starte, trenger domeneleverandørkonfigurasjonen i dette tilfellet Go Daddy Så på dette punktet vet jeg ikke hvordan jeg skal fortsette.

  13.   Ricardo sa

    Kan du dele konfigurasjonsfilene med meg siden jeg ikke kan laste dem ned, vær så snill