Verkkopalvelimen asentaminen Nginx + MySQL + PHP5 + APC + Spawn_FastCGI -palvelimella [2. osa: Nginx]

Hace Tiempo Kerroin sinulle tästä opasarjasta, kuinka palvelin asennetaan ja määritetään suurta kysyntää varten. Tässä artikkelissa käsitellään Nginxin asentamista ja määrittämistä:

nginx:

Olemme jo kertoneet sinulle Nginxistä aiemmin artikkelissa Nginx: Mielenkiintoinen vaihtoehto Apachelle, kerroimme sinulle, että se on verkkopalvelin, kuten Apache, LightHttpd tai Cherokee, mutta Apacheen verrattuna se erottuu suorituskyvystään ja alhaisesta laitteistonkulutuksestaan, mistä syystä monet suuret sivustot, kuten Facebook, MyOpera.com, DropBox tai jopa WordPress .com käyttää Nginxiä Apachen sijaan. Linuxin maailmassa DesdeLinux Se ei ole ainoa, joka käyttää Nginxiä, tietääkseni myös emsLinux ja MuyLinux käyttävät sitä :)

Henkilökohtainen kokemukseni Nginxistä juontaa juurensa useisiin vuosiin, kun aloin välttämättömyydestä lähtien etsiä kevyitä vaihtoehtoja Apachelle. Tuolloin Nginx oli siirtymässä versioon 0.6, ja sen yhteensopivuus PHP: n sisältämien korkean kysynnän sivustojen kanssa ei ollut optimaalisin, mutta nykyään versiosta 0.9 lähtien (v1.2.1 saatavilla Debian Stable -sovelluksessa, v1.4.2 saatavana ArchLinuxissa) on parantunut paljon siihen pisteeseen asti, että Nginx + PHP: n oikean kokoonpanon ja liitoksen avulla kaikki toimii kuin viehätys.

Tässä opetusohjelmassa Käytän Nginx-versiota 1.2.1-2.2, saatavana Debian Stable -repoista (Wheezy).

Tämä opetusohjelma käsittelee vain ja yksinomaan Nginxiä, ei Nginx + PHP: tä, Nginx + PHP: n yhdistämistä sekä sen optimointia tai tarvittavaa kokoonpanoa käsitellään seuraava opetusohjelma

1. Asennus:

Aloitamme ensin, asenna Nginx arkistoistamme.

Kaikki suoritettavat komennot suoritetaan pääkäyttäjän oikeuksilla, joko asettamalla sudo jokaisen rivin alkuun tai kirjautumalla sisään pääkäyttäjänä

Jos palvelimellasi käytetään terminaalissa jakelua, kuten Debian, Ubuntu tai jokin johdannainen, sinun on laitettava seuraava ja painettava enter :

aptitude install nginx

aptitude ei ole asennettuna oletuksena Ubuntussa, mutta suosittelen, että asennat sen ja käytät sitä apt-getin sijaan, koska aptitude hallitsee riippuvuuksia paremmin tietyissä tilanteissa

Jos käytät palvelimellasi muuta jakelua, kuten CentOS, Red Hat, Fedora, asenna paketti: nginx vain virallisesta arkistosta

Henkilökohtaisesti en suosittele mitään Debianin johdannaista, edes Ubuntua palvelimille, vuosien varrella kokemukseni eivät ole olleet täysin tyydyttäviä. Ensimmäinen valintani palvelimen käyttöjärjestelmälle on Debian, sitten ajattelin CentOSia, lopuksi BSD: tä

2. Kokoonpano:

Meillä on jo Nginx asennettuna, mutta meidän on ilmeisesti määritettävä se. Olen valmistellut FTP:lle pakatun tiedoston, joka sisältää kaikki palvelimilla käytetyt asetukset. DesdeLinux, sekä PHP:lle, Nginxille jne. Lataa ja pura tiedosto:

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

Tämä luo kansion nimeltä nginx-spawn-fastcgi, josta tarvitsemme kaksi tiedostoa puhtaalle Nginxille (toisin sanoen linkittämättä sitä PHP: hen):

  • nginx.conf - »Nginx-pääasetustiedosto (puhumme sen sisällöstä myöhemmin)
  • index.html - »Yksinkertainen html-tiedosto, jonka avulla voimme nähdä, toimiiko Nginx todella meille perusmuodossaan
  • mywebsite.net - »Yksinkertaisen verkkosivuston määritystiedosto, VHost (Virtual Host), joka määrittää edellisen html: n käytön

Siirrytään ensin Nginx-asetukset-kansioon:

cd /etc/nginx/

Poistetaan sitten sen oletuskokoonpano ja laitetaan oma:

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

Tämä, kuten sanoin, on tärkein Nginx-määritystiedosto, siinä olen jo määritellyt seuraavat:

käyttäjän www-data; worker_processes 4; pid /var/run/nginx.pid;

Käyttäjien pääsy tiedostojärjestelmään (jota nginx käyttää kaikkialla), työskenteltävien prosessien määrä ja myös PID (nginx-prosessin tunnus).

Meillä on myös pieni lohko, jota kutsutaan tapahtumiksi (tapahtumien asetukset) ja joka sisältää rivin, joka osoittaa enimmäismäärän yhteyksiä tapahtumaa kohti. Alla on lohko nimeltä http.

Tämä http-lohko sisältää melkein kaiken isännöintiin liittyvän, ainakin monia asioita, jotka kiinnostavat sinua. Esimerkiksi suurin mahdollinen aika elää tai odottaa (aikakatkaisu), missä yleiset lokimme (access.log ja error.log) ovat, tietojen pakkaaminen gzip-tiedostoa käyttäen sekä muut säännöt, joista voi olla hyötyä tulevaisuudessa.

Kun päämääritystiedosto on paikallaan, kopioidaan tiedosto VHostista sivustoihin käytettävissä olevaan kansioon

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

Lisäksi meidän on tehtävä symbolinen linkki tästä tiedostosta sivustoja käyttävään kansioon.

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

Selitän sivustojen ja sivustojen käyttämisen hyödyllisyyttä.

On aikoja, jolloin heillä on oltava useita vhost-tiedostoja valmiina ja määritetty, koska kyseisellä palvelimella he asettavat verkkoon, sanotaan 5 sivustoa. Kuitenkin sattuu, että ei ole vielä aika ottaa käyttöön kahta näistä viidestä palvelimesta, mutta tiedostojen on oltava valmiina, jotta tarvittaessa ne ovat verkossa mahdollisimman lyhyessä ajassa. He voivat laittaa haluamansa määrän isäntiä sivustoille, jotka ovat käytettävissä, koska Nginx lukee online-sivustoksi vain sivustoja tukevia, se toimisi myös päinvastaisessa suunnassa, jos he haluavat laittaa offline-tilaan (väliaikaisesti esimerkki) sivustosta, tiedostoja ei tarvitse poistaa palvelimeltasi (tiedostot, joita tarvitsemme myöhemmin), poistamme vain symbolisen linkin sivustojen kanssa ja siinä kaikki. Symbolisten linkkien käyttämisen eikä vain tiedoston kopioinnin kansiosta toiseen käyttökelpoisuus on se, että kun haluamme muokata vhostia, ei ole väliä, muokkaammeko käytössä olevan vai käytettävissä olevan, loppujen lopuksi se on sama
arkisto.

Tiedosto mywebsite.net, kuten sanoin aiemmin, vhost, joka toimii esimerkkinä, toisin sanoen, meidän on muutettava mywebsite.net ja määritettävä kokoonpanomme.

Meidän on muutettava seuraavaa:

  • access_log (rivi 3): Tämä on pääsylokitiedoston polku tälle sivustolle
  • error_log (rivi 4): Tämä on virhelokitiedoston polku tälle sivustolle
  • palvelimen_nimi (rivi 5): URL-osoite, verkkotunnus, jota isännöidään kyseisessä kansiossa, esimerkiksi jos se olisi foorumi DesdeLinux se olisi: foorumipalvelimen_nimi.desdelinux. Net
  • root (rivi 6): Polku kansioon, jossa html-tiedostot ovat, jätetään tämä hakemistoon / var / www /, koska se on vain testi
Ilmeisesti heidän on osoitettava isännöintipalvelunsa DNS-tietueissa (käyttäen CPanelia tai muuta työkalua), että palvelimen_nimi ilmoitettu toimialue tai aliverkkotunnus sijaitsee tämän palvelimen IP-osoitteessa, jota he määrittävät. Toisin sanoen DNS: ssä, jossa he luovat aliverkkotunnuksia toimialueelleen, heidän on ilmoitettava, että riville 5 asettamansa toimialue tai aliverkkotunnus sijaitsee tällä palvelimella (tämä palvelin = kyseisen palvelimen IP-osoite)

Nyt meidän on vain kopioitava html-tiedosto kansioon, jonka määrittelemme VHost-tiedostossamme, / var / www /:

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

Sitten käynnistämme Nginxin uudelleen ja siinä kaikki:

service nginx restart

Ja voila, jotain tällaista ilmestyy:

nginx-pure-test-site-html

Muistutan teitä siitä, että työskentelemme ensin Nginx for HTML -ohjelman kanssa ilman PHP-tukea. Asenna PHP ja linkitä se Nginxiin on seuraavan opetusohjelman sisältö (lupaan muutaman päivän kuluttua).

Joka tapauksessa tämä on Nginxin asennus- ja määritysopetus, jotta se toimii puhtaana, ts. HTML-sivustona, toivon, että se kiinnostaa sinua.

Selvitän, että kyllä, parhaita käytäntöjä voidaan edelleen käyttää, mutta odotetaan kuitenkin tämän opetusohjelmien loppuun saattamista ja sitten arvioimme työn lopputuloksen 😉

terveiset


26 kommenttia, jätä omasi

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Nelson dijo

    Kiitos, erittäin hyödyllinen!

    1.    KZKG ^ Gaara dijo

      Kiitos kommentista

  2.   metsästäjä dijo

    Takaporteissa on nginx 1.4 ..

    1.    KZKG ^ Gaara dijo

      Kyllä, mutta tuotantopalvelimessa en käytä mitään siitä 😀

      1.    metsästäjä dijo

        "Tällä" tarkoitat viimeisintä vakaa ja testattua versiota, jonka nginx on julkaissut, ja saat sen kuulostamaan siltä kuin se olisi sid-sid. ~ _ ~

        1.    KZKG ^ Gaara dijo

          Ai tule, onko ... palvelimilla en ole koskaan halunnut käyttää muita repoja, backporteja tai vastaavia 🙂

      2.    Raphael Castro dijo

        Aina vakaa palvelimilla, opin sen vuosia sitten.

        1.    metsästäjä dijo

          Nginx 1.4 on vakaa viime huhtikuusta lähtien, takaporteissa se on 1.4.1-3.

          2013-04-24

          Vakaa nginx-1.4.0-versio on julkaistu, ja se sisältää monia 1.3.x-haarassa kehitettyjä uusia ominaisuuksia - tuki WebSocket-yhteyksien välityspalvelimille, OCSP-nidonta, SPDY-moduuli, pistoolisuodatin ja paljon muuta.

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

          1.    Raphael Castro dijo

            Olet oikeassa siinä, mitä sanot, hattu on pois päältä.

  3.   chinoloco dijo

    Kiitos jakamisesta, olen parhaillaan toteuttamassa vanhinta viestiäsi käytännössä.
    Aion täyttää sinut kysymyksillä XD

    1.    KZKG ^ Gaara dijo

      Kiitos lukemisesta 🙂
      Jos sinulla on kysyttävää tai huolenaiheita, tiedät, olemme täällä auttamassa, siellä on foorumi.desdelinux.net, jossa yritämme yhdessä tarjota sinulle parhaan ratkaisun

      terveiset

      1.    Gibran barrera dijo

        Minulla on kysymys, onko palvelimellani käynnissä LAMP [Linux (Debian Wheezy), Apache, PHP ja MySQL] WordPress- ja Owncloud-palvelimillani, miten siirrän Ngnixiin, toinen kysymys on, mikä ero on Ngnixin ja Lighttpd: n välillä.

        1.    KZKG ^ Gaara dijo

          Suurimmat komplikaatiot tai vaikeudet siirtyä Apachesta Nginxiin ovat kunkin sivuston kokoonpanot, erityisesti käyttämäsi .htaccess.

          .Htaccess on monimutkaisin vaihdettaessa Nginxiin, koska ne ovat erilaisia ​​kokoonpanoja, jotka sinun on lisättävä Nginx VHostiin.

          Tietoja LightHTTPd: stä ja Nginxistä ... En tiedä, käytin LightHTTPd: tä vain kerran monta vuotta sitten, tällä hetkellä minulla ei ole aavistustakaan kuinka sen kehitys etenee, erityisesti PHP: n avulla.

  4.   eliotime3000 dijo

    NGINX näyttää melko suoraviivaiselta Apacheen verrattuna. Odotetaan seuraavaa jaksoa, jotta se voidaan täydentää PHP: llä

  5.   Mauritius dijo

    Odotan vinkkejä optimoidaksesi enemmän nginxiin 😀

    Muuten, Gaara, voit sisällyttää seuraavaan opetusohjelmaasi, kuinka SSL-tuki otetaan käyttöön.

    Tervehdys.

    1.    KZKG ^ Gaara dijo

      Tulevat vinkit ovat itse asiassa PHP-käsittelyn optimointia, sivuston välimuistia. Voin antaa esimerkin kokoonpanosta, jota käytämme DesdeLinux Nginx+Wordpress+W3_Total_Cachelle :)

  6.   Kaiser dijo

    Kiitos hyvästä panoksesta.

  7.   Huhtikuuxxas dijo

    Ja milloin Archlinux-opas? xD

    1.    KZKG ^ Gaara dijo

      Archissa se on ollut hyvin samanlainen, vain pakettien nimet muuttuvat, mutta ... conf on melkein identtinen

      Mutta kenellä on tuotantopalvelin Archin kanssa? 😀

  8.   Huhtikuuxxas dijo

    Moi,

    Minä olen taas xD ...

    Seurasin vaiheitasi sovellettaessa niitä koneeseen, jossa on archlinux, ja minulla on seuraava ongelma:

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

    Ehdotuksia 😀

  9.   rhiz dijo

    Jo… xox, haluan vain sisäisen palvelimen, eli haluan vain korvata xampp: n, pitäisikö minun tehdä tämä kaikki?

    1.    KZKG ^ Gaara dijo

      Jos haluat, että voit toteuttaa tämän (toistan toisin, DL toimii), itse asiassa virtuaalipalvelimeni (jota käytän kehitykseen ja testaukseen), olen tehnyt sen tällä samalla asialla, jonka selitän.

      Eli voit joko poistaa XAMPP: n ja laittaa tämän variantin ja se toimii hyvin, tai jos haluat poistua XAMPP: stä ... se toimii edelleen sinulle.

      Tämän käyttämisen myönteinen asia, jonka näytän, on erittäin matala laitteistokulutus Apacheen verrattuna, mutta henkilökohtaisella tietokoneellasi, joka ei ole kovin kysyttävä isäntä, kaukana ... jos XAMPP toimii sinulle hyvin, en en näe miksi poistaa sen 🙂

  10.   Isaac dijo

    Minulla on jo Linux-palvelimeni käynnissä (Debian, Nginx, MySQL ja PHP). Minulla oli vaikeuksia saada PHP toimimaan Nginxin kanssa, koska olin tottunut yksinkertaiseen Apache-verkkopalvelimeen.

    Kysymykseni kuuluu: Tietääkö kukaan, kuinka voin osoittaa testialueeni, jonka olen ostanut palvelimelleni? Haluaisin kokeilla .com-verkkotunnustani nähdäksesi, miten se toimii, mutta minulla ei ole aavistustakaan, miten se tehdään, koska olen aina käyttänyt NOIP-osoitetta päästäksesi siihen noip DUC: n avulla.

    Toivottavasti joku voi auttaa minua, kiitos!

  11.   Abraham dijo

    Saan tämän yritettäessä muodostaa yhteys ftp: hen:

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

    HTTP-pyyntö lähetetty, odottaa vastausta ... 404 ei löydy
    2015-11-23 17:46:30 VIRHE 404: Ei löydy.

  12.   Ryan dijo

    Minun palvelimeni on käynnissä CentOS: lla (Gunicorn, Nginx, PHP), se maksoi minulle paljon työtä saadakseni heidät toimimaan, mutta juutuin kohtaan, että käynnistettävä verkkosivu tarvitsee verkkotunnuksen tarjoajan määritykset Go Go Daddy, joten tässä vaiheessa en tiedä miten jatkaa.

  13.   Ricardo dijo

    Voisitko jakaa kokoonpanotiedostot kanssani, koska en voi ladata niitä