Kako namestiti spletni strežnik z Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [2. del: Nginx]

Čez nekaj časa Povedal sem vam o tej seriji vaj, o tem, kako namestiti in konfigurirati strežnik za gostovanje z velikim povpraševanjem. Ta članek bo o namestitvi in ​​konfiguriranju Nginxa:

Nginx:

O Nginxu smo vam že povedali v članku Nginx: Zanimiva alternativa Apacheju, tam smo vam povedali, da gre za spletni strežnik, kot je Apache, LightHttpd ali Cherokee, vendar v primerjavi z Apachem izstopa po svoji zmogljivosti in nizki porabi strojne opreme, prav zato veliko velikih spletnih mest, kot so Facebook, MyOpera.com, DropBox ali celo WordPress .com uporablja Nginx namesto Apache. V svetu Linuxa DesdeLinux Ni edini, ki uporablja Nginx, kolikor vem, ga uporabljata tudi emsLinux in MuyLinux :)

Moje osebne izkušnje z Nginxom segajo že nekaj let nazaj, ko sem zaradi potrebe začel iskati lahke alternative za Apache. Takrat je Nginx uporabljal različico 0.6 in njegova združljivost s spletnimi mesti z velikim povpraševanjem v PHP ni bila najbolj optimalna, danes pa od različice 0.9 naprej (v1.2.1 na voljo v Debian Stable, v1.4.2 na voljo v ArchLinux) se je precej izboljšal do te mere, da bo ob pravilni konfiguraciji in združitvi Nginx + PHP vse delovalo kot čar.

V tej vadnici Uporabil bom različico Nginx 1.2.1-2.2, na voljo v rebijih Debian Stable (Wheezy).

Ta vadnica obravnava samo in izključno Nginx, ne pa tudi Nginx + PHP, združitev Nginx + PHP, pa tudi njegova optimizacija ali potrebna konfiguracija bo obravnavana v naslednja vadnica

1. Namestitev:

Začeli bomo s prvo, namestite Nginx iz naših skladišč.

Vsi ukazi, ki se bodo izvajali, se izvajajo s korenskimi dovoljenji, tako da na začetek vsake vrstice postavite sudo ali pa se prijavite kot root

Če na svojem strežniku v terminalu uporabljate distribucijo, kot je Debian, Ubuntu ali kakšen derivat, morate vstaviti naslednje in pritisniti Vnesite :

aptitude install nginx

aptitude privzeto ni nameščen v Ubuntuju, vendar priporočam, da ga namestite in uporabite namesto apt-get, saj aptitude ob določenih priložnostih bolje obvladuje odvisnosti

Če na svojem strežniku uporabljate drugo distribucijo, kot so CentOS, Red Hat, Fedora, preprosto namestite paket: nginx iz uradnega repozitorija

Osebno ne priporočam nobenih izpeljank Debiana, niti Ubuntuja za strežnike, v preteklih letih moje izkušnje niso bile povsem zadovoljive. Moja prva izbira za strežniški operacijski sistem je Debian, potem bi pomislil na CentOS, na koncu še na BSD

2. Konfiguracija:

Nginx že imamo nameščen, vendar ga moramo očitno konfigurirati. Na FTP sem pripravil stisnjeno datoteko, ki vsebuje vse konfiguracije, ki se uporabljajo na strežnikih. DesdeLinux, tako za PHP, Nginx itd. Prenesimo in razpakirajmo to datoteko:

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

To bo ustvarilo mapo z imenom nginx-spawn-fastcgi, iz nje bomo potrebovali dve datoteki za čisti Nginx (torej brez povezave s PHP):

  • nginx.conf - »Glavna konfiguracijska datoteka Nginx (o njeni vsebini bomo govorili kasneje)
  • index.html - »Preprosta datoteka html, s katero bomo ugotovili, ali nam Nginx resnično deluje v najbolj osnovni obliki
  • mywebsite.net - »Konfiguracijska datoteka za preprosto spletno mesto, VHost (navidezni gostitelj), ki bo konfiguriral dostop do prejšnjega html

Najprej se premaknimo v mapo z nastavitvami Nginx:

cd /etc/nginx/

Potem odstranimo njegovo privzeto konfiguracijo in postavimo svojo:

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

To je, kot rečeno, glavna konfiguracijska datoteka Nginx, v njej sem že določil naslednje:

uporabniški www-podatki; delav_proces 4; pid /var/run/nginx.pid;

Uporabniški dostop do datotečnega sistema (s katerim bo nginx dostopal povsod), število procesov, s katerimi lahko delate, in tudi PID (ID procesa nginx).

Tam imamo tudi majhen blok z imenom dogodki (nastavitve za dogodke), ki vsebuje vrstico, ki označuje največje dovoljeno število povezav na dogodek. Spodaj je blok, imenovan http.

Ta blok http vsebuje tistega, ki vsebuje skoraj vse, kar je povezano z gostovanjem, vsaj veliko stvari, ki vas bodo zanimale. Na primer največji čas za življenje ali čakanje (timeout), kjer bodo naši splošni dnevniki (access.log in error.log), stiskanje podatkov z uporabo gzip, pa tudi druga pravila, ki bi lahko bila koristna v prihodnosti.

Ko je glavna konfiguracijska datoteka na mestu, jo kopirajmo iz našega VHost-a v mapo, ki je na voljo za spletna mesta

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

Poleg tega moramo iz te datoteke narediti simbolično povezavo do mape z omogočenimi spletnimi mesti.

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

Pojasnjujem koristnost uporabe strani, ki so omogočene in so na voljo.

Ugotovili bodo trenutke, ko bodo morali imeti pripravljenih in konfiguriranih več datotek vhost, saj bodo na tem strežniku postavili splet, recimo 5 spletnih mest. Vendar se zgodi, da še ni čas, da omogočimo 2 od teh 5 gostov, vendar morajo imeti datoteke pripravljene, tako da bodo po potrebi v najkrajšem možnem času na spletu. V mesta, ki so na voljo (spletna mesta so na voljo), lahko vstavite toliko gostov, ker Nginx prebere, da jih postavi v splet, so samo mesta, ki imajo omogočena spletna mesta (spletna mesta so omogočena), pa tudi v obratni smeri, v primeru, da želite spletno mesto namestiti brez povezave (na primer na primer), ni treba brisati datotek s strežnika (datoteke, ki jih bomo potrebovali kasneje), preprosto odstranimo simbolično povezavo spletnih mest, na katerih je omogočeno, in to je to. Uporabnost simboličnih povezav in ne zgolj kopiranja datoteke iz ene mape v drugo je, da kadar želimo urediti vhost, ni pomembno, ali uredimo tistega, ki je v omogočenem ali na voljo, na koncu je isti
arhiv.

Datoteka mywebsite.net, kot sem že rekel, vhost, ki služi kot primer, torej z drugimi besedami, spremeniti moramo mywebsite.net in vzpostaviti naše konfiguracije.

Spremeniti moramo naslednje:

  • access_log (vrstica 3): To bo pot datoteke dnevnika dostopa do tega spletnega mesta
  • error_log (vrstica 4): To bo pot datoteke dnevnika napak do tega spletnega mesta
  • ime_strežnika (vrstica 5): URL, domena, ki gostuje v tej mapi, na primer, če bi bil forum DesdeLinux to bi bilo: forum server_name.desdelinux.net
  • root (vrstica 6): Pot do mape, v kateri so datoteke html, pustimo to v / var / www /, saj bo le test
Očitno morajo v svojih zapisih DNS svojega ponudnika gostovanja (z uporabo CPanela ali drugega orodja) kazati, da se domena ali poddomena, prijavljena v ime_strežnika, nahaja na IP-ju tega strežnika, ki ga konfigurirajo. To pomeni, da morajo v DNS, kjer ustvarijo poddomene za svojo domeno, prijaviti, da se domena ali poddomena, ki so jo postavili v vrstico 5, nahaja na tem strežniku (ta strežnik = naslov IP zadevnega strežnika)

Zdaj moramo le kopirati datoteko html v mapo, ki smo jo definirali v naši datoteki VHost, / var / www /:

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

Nato znova zaženemo Nginx in to je to:

service nginx restart

In voila, pojavilo se bo nekaj takega:

nginx-pure-test-site-html

Spomnim vas, da najprej sodelujemo z Nginxom za HTML, ne da bi imeli podporo za PHP, ta namestitev PHP-ja in povezava na Nginx bo vsebina naslednje vadnice (obljubljam čez nekaj dni).

Kakorkoli, to je vadnica za namestitev in konfiguracijo Nginxa, tako da deluje čisto, to je spletna stran HTML, upam, da vas bo zanimala.

Pojasnil bom, da da, še vedno obstajajo najboljše prakse, ki jih je mogoče uporabiti, vendar počakajmo, da zaključimo to serijo vaj, nato pa bomo ocenili končni rezultat dela 😉

pozdrav


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Nelson je dejal

    Hvala, zelo koristno!

    1.    KZKG ^ Gaara je dejal

      Hvala za komentar

  2.   dhunter je dejal

    V ozadjih je nginx 1.4 ..

    1.    KZKG ^ Gaara je dejal

      Da, toda na delovnem strežniku ne uporabljam ničesar od tega 😀

      1.    dhunter je dejal

        Z izrazom "it" misliš na najnovejšo stabilno in preizkušeno različico, ki jo je izdal nginx, se sliši, kot da bi jo sid prilagodilo. ~ _ ~

        1.    KZKG ^ Gaara je dejal

          Ah, daj no, ali je to ... na strežnikih nisem nikoli rad uporabljal drugih repozitov, backportov ali česa podobnega 🙂

      2.    Raphael Castro je dejal

        Vedno stabilen na strežnikih, tega sem se naučil že pred leti.

        1.    dhunter je dejal

          Nginx 1.4 je stabilen od aprila lani, v zaledju pa 1.4.1-3.

          2013-04-24

          Izšla je stabilna različica nginx-1.4.0, ki vključuje številne nove funkcije, razvite v veji 1.3.x - podpora za proxy povezave WebSocket, spenjanje OCSP, modul SPDY, gunzip filter in še več.

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

          1.    Raphael Castro je dejal

            Prav imaš, kar govoriš, moj klobuk je dol.

  3.   kinoloko je dejal

    Hvala za skupno rabo, trenutno uporabljam vašo najstarejšo objavo.
    Napolnil vas bom z vprašanji XD

    1.    KZKG ^ Gaara je dejal

      Hvala za branje 🙂
      Če imate kakršna koli vprašanja ali skrbi, veste, tu smo, da vam pomagamo, tu je forum.desdelinux.net, kjer vam bomo skupaj poskušali ponuditi najboljšo rešitev

      pozdrav

      1.    Gibran barrera je dejal

        Imam vprašanje, na svojem strežniku imam nameščen LAMP [Linux (Debian Wheezy), Apache, PHP in MySQL] za WordPress in Owncloud. Kako se preselim na Ngnix, drugo vprašanje je, kakšna je razlika med Ngnix in Lighttpd.

        1.    KZKG ^ Gaara je dejal

          Največji zaplet ali težava za selitev iz Apacheja v Nginx so konfiguracije vsakega spletnega mesta, torej .htaccess, ki ga uporabljate.

          .Htaccess je pri preklopu na Nginx najbolj zapleten, saj gre za različne konfiguracije, ki jih morate vnesti v Nginx VHost.

          O LightHTTPd in ​​Nginx ... Ne vem, LightHTTPd sem pred mnogimi leti uporabljal le enkrat, trenutno pa sploh ne vem, kako poteka njegov razvoj, še posebej z uporabo PHP.

  4.   eliotime3000 je dejal

    NGINX je videti precej enostavno v primerjavi z Apachejem. Čakam na naslednjo epizodo, da jo bom lahko dopolnil s PHP

  5.   Mauricio je dejal

    Čakam na nasvete za večjo optimizacijo za nginx 😀

    Mimogrede, Gaara lahko v naslednjo vadnico vključite, kako izvajati podporo SSL.

    Lep pozdrav.

    1.    KZKG ^ Gaara je dejal

      Namigi, ki prihajajo, so pravzaprav optimizacija obdelave PHP, predpomnjenje spletnega mesta, lahko dam primer konfiguracije, ki jo uporabljamo v DesdeLinux za Nginx+Wordpress+W3_Total_Cache :)

  6.   kaiser je dejal

    Hvala dober prispevek.

  7.   Apr4xas je dejal

    In kdaj vodnik za archlinux? xD

    1.    KZKG ^ Gaara je dejal

      V Archu je bilo zelo podobno, spreminjajo se samo imena paketov, toda ... conf je skoraj enak

      Kdo pa ima produkcijski strežnik z Archom? 😀

  8.   Apr4xas je dejal

    Zdravo,

    Spet sem jaz xD ...

    Sledil sem vašim korakom pri njihovi uporabi na računalniku z archlinuxom in imam naslednjo težavo:

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

    Morebitni predlogi 😀

  9.   rhiz je dejal

    Jo… xox, želim samo notranji strežnik, torej želim samo zamenjati xampp, naj naredim vse to?

    1.    KZKG ^ Gaara je dejal

      Če želite, lahko to implementirate (kar ponavljam, s tem deluje DL), pravzaprav moj virtualni strežnik (ki ga uporabljam za razvoj in testiranje) naredim s to isto stvarjo, ki jo razložim.

      To pomeni, da lahko odstranite XAMPP in postavite to različico in bo delovala v redu, ali če želite zapustiti XAMPP ... bo še vedno delovala za vas.

      Pozitivna točka uporabe tega, kar dokazujem, je zelo majhna poraba strojne opreme v primerjavi z Apachejem, toda na vašem osebnem računalniku, ki ni gostiteljstvo z velikim povpraševanjem, še zdaleč ... če XAMPP dobro deluje za vas, ne poglejte, zakaj ga odstranite 🙂

  10.   Isaac je dejal

    Moj Linux strežnik že deluje (Debian, Nginx, MySQL in PHP). Težko sem priskrbel PHP za delo z Nginxom, ker sem bil vajen preprostega spletnega strežnika Apache.

    No, moje vprašanje je: Ali kdo ve, kako lahko na strežnik usmerim testno domeno, ki sem jo kupil? Želel bi preizkusiti svojo domeno .com, da vidim, kako deluje, vendar nimam niti najmanjše ideje, kako to narediti, ker sem vedno uporabljal naslov NOIP za dostop do njega z noip DUC.

    Upam, da mi lahko kdo pomaga, hvala!

  11.   Abraham je dejal

    To dobim, ko se poskušam povezati z vašim ftp:

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

    Zahteva HTTP je poslana, čaka na odgovor ... 404 ni mogoče najti
    2015-11-23 17:46:30 NAPAKA 404: Ni najdeno.

  12.   Ryan je dejal

    Imam strežnik CentOS (Gunicorn, Nginx, PHP), da sem jih delal, sem si vzel veliko dela, toda točka, v kateri sem se zataknil, je, da spletna stran, ki jo želim zagnati, potrebuje konfiguracijo ponudnika domen, v tem primeru pojdi očka , Torej v tem trenutku ne vem, kako nadaljevati.

  13.   Ricardo je dejal

    Ali mi lahko delite konfiguracijske datoteke, ker jih prosim ne morem prenesti