Č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).
1. Namestitev:
Začeli bomo s prvo, namestite Nginx iz naših skladišč.
Č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
Če na svojem strežniku uporabljate drugo distribucijo, kot so CentOS, Red Hat, Fedora, preprosto namestite paket: nginx iz uradnega repozitorija
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
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:
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
Hvala, zelo koristno!
Hvala za komentar
V ozadjih je nginx 1.4 ..
Da, toda na delovnem strežniku ne uporabljam ničesar od tega 😀
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. ~ _ ~
Ah, daj no, ali je to ... na strežnikih nisem nikoli rad uporabljal drugih repozitov, backportov ali česa podobnega 🙂
Vedno stabilen na strežnikih, tega sem se naučil že pred leti.
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
Prav imaš, kar govoriš, moj klobuk je dol.
Hvala za skupno rabo, trenutno uporabljam vašo najstarejšo objavo.
Napolnil vas bom z vprašanji XD
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
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.
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.
NGINX je videti precej enostavno v primerjavi z Apachejem. Čakam na naslednjo epizodo, da jo bom lahko dopolnil s PHP
Čakam na nasvete za večjo optimizacijo za nginx 😀
Mimogrede, Gaara lahko v naslednjo vadnico vključite, kako izvajati podporo SSL.
Lep pozdrav.
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 :)
Hvala dober prispevek.
In kdaj vodnik za archlinux? xD
V Archu je bilo zelo podobno, spreminjajo se samo imena paketov, toda ... conf je skoraj enak
Kdo pa ima produkcijski strežnik z Archom? 😀
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 😀
Jo… xox, želim samo notranji strežnik, torej želim samo zamenjati xampp, naj naredim vse to?
Č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 🙂
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!
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.
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.
Ali mi lahko delite konfiguracijske datoteke, ker jih prosim ne morem prenesti