Odavno Rekao sam vam o ovoj seriji vodiča, o tome kako instalirati i konfigurirati server za hosting sa visokom potražnjom. Ovaj članak govori o instaliranju i konfiguriranju Nginxa:
nginx:
Već smo vam rekli o Nginxu u članku Nginx: Zanimljiva alternativa Apacheu, tamo smo vam rekli da je to web server kao što je Apache, LightHttpd ili Cherokee, ali u poređenju sa Apacheom ističe se po svojim performansama i maloj potrošnji hardvera, upravo zbog čega mnoge velike stranice kao što su Facebook, MyOpera.com, DropBox ili čak WordPress .com koristi Nginx umjesto Apache. U svijetu Linuxa DesdeLinux Nije jedini koji koristi Nginx, koliko ja znam, koriste ga i emsLinux i MuyLinux :)
Moje lično iskustvo s Nginxom datira unazad nekoliko godina, kad sam iz potrebe počeo tražiti lagane alternative Apacheu. U to je vrijeme Nginx bio na verziji 0.6 i njegova kompatibilnost sa web lokacijama s velikim zahtjevima izrađenim u PHP-u nije bila najoptimalnija, međutim danas od verzije 0.9 nadalje (v1.2.1 dostupan na Debian Stable, v1.4.2 dostupan na ArchLinux) se mnogo poboljšao do te mjere da će uz pravilnu konfiguraciju i uniju Nginx + PHP-a sve funkcionirati kao šarm.
U ovoj seriji tutorijala Koristit ću Nginx verziju 1.2.1-2.2, dostupno u Debian stabilnim repoima (Wheezy).
1. Instalacija:
Krenut ćemo s prvom stvari, instalirajte Nginx iz naših spremišta.
Ako na vašem poslužitelju koristite distribuciju poput Debiana, Ubuntu-a ili nekog derivata u terminalu, morate staviti sljedeće i pritisnuti ući :
aptitude install nginx
U slučaju da na serveru koristite drugu distribuciju kao što su CentOS, Red Hat, Fedora, jednostavno instalirajte paket: nginx iz službenog spremišta
2. Konfiguracija:
Već imamo instaliran Nginx, ali očito ga moramo konfigurirati. Pripremio sam komprimiranu datoteku na FTP koja sadrži sve konfiguracije koje se koriste na serverima. DesdeLinux, oba za PHP, Nginx, itd. Hajde da preuzmemo i raspakujemo taj fajl:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
Ovo će stvoriti mapu zvanu nginx-spawn-fastcgi, iz nje će nam trebati dvije datoteke za čisti Nginx (to jest, bez povezivanja s PHP-om):
- nginx.conf - »Glavna Nginx datoteka za konfiguraciju (o njenom sadržaju ćemo kasnije)
- index.html - »Jednostavna html datoteka pomoću koje ćemo provjeriti radi li Nginx zaista u našem najosnovnijem obliku
- mywebsite.net - »Konfiguracijska datoteka za jednostavno web mjesto, VHost (Virtual Host) koji će konfigurirati pristup prethodnom html-u
Krenimo prvo u fasciklu Nginx postavki:
cd /etc/nginx/
Zatim uklonimo njegovu zadanu konfiguraciju i stavimo svoju:
mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./
Ovo je, kao što rekoh, glavna datoteka za konfiguraciju Nginxa, u njoj sam već definirao sljedeće:
korisnik www-podaci; worker_processes 4; pid /var/run/nginx.pid;
Korisnički pristup sistemu datoteka (s kojim će nginx pristupiti svugdje), broj procesa s kojima treba raditi i također PID (nginx id procesa).
Tu imamo i mali blok pod nazivom događaji (postavke događaja) koji sadrži liniju koja označava maksimalan broj dozvoljenih veza po događaju. Ispod je blok nazvan http.
Ovaj http blok sadrži gotovo sve što se odnosi na hosting, barem mnoge stvari koje će vas zanimati. Na primjer, maksimalno vrijeme za život ili čekanje (timeout), gdje će biti naši opći dnevnici (access.log i error.log), kompresija podataka pomoću gzip-a, kao i druga pravila koja bi mogla biti korisna u budućnosti.
Jednom kada je glavna konfiguracijska datoteka na mjestu, kopirajmo datoteku iz našeg VHost-a u mapu dostupnu na web lokacijama
cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/
Pored toga, iz ove datoteke moramo napraviti simboličku vezu do mape s omogućenim web lokacijama.
ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/
Objašnjavam korisnost omogućavanja i dostupnosti web lokacija.
Pronaći će trenutke kada moraju imati nekoliko vhost datoteka spremnih i konfiguriranih, jer će na taj server staviti mrežu, recimo 5 web lokacija. Međutim, događa se da još nije vrijeme za omogućavanje 2 od tih 5 hostova, ali oni moraju imati spremne datoteke kako bi po potrebi bili na mreži u najkraćem mogućem roku. Možete staviti koliko god želite vhostova na web lokacije dostupne (web stranice dostupne), jer one koje Nginx čita da bi ih stavio na mrežu samo su one sa omogućenim web lokacijama (web lokacije omogućene), a također bi radilo u suprotnom smjeru, u slučaju da želite postaviti offline na primjer) web mjesto, nema potrebe za brisanjem datoteka sa vašeg servera (datoteke koje će nam trebati u neko drugo vrijeme), jednostavno uklanjamo simboličku vezu sa omogućenim web lokacijama i to je to. Korisnost korištenja simboličkih poveznica, a ne jednostavno kopiranje datoteke iz jedne mape u drugu, je da kada želimo urediti vhost, nije važno hoćemo li urediti onaj koji se nalazi u omogućenom ili dostupnom, na kraju je isti
arhiva.
Datoteka mywebsite.net kao što sam već rekao, vhost koji služi kao primjer, odnosno, drugim riječima, moramo izmijeniti mywebsite.net i uspostaviti naše konfiguracije.
Moramo promijeniti sljedeće:
- access_log (red 3): Ovo će biti put datoteke evidencije pristupa do ove stranice
- error_log (red 4): Ovo će biti put datoteke evidencije grešaka do ove stranice
- server_name (red 5): URL, domena koja se nalazi u tom folderu, na primjer, ako je to forum DesdeLinux to bi bilo: ime servera foruma.desdelinux.net
- root (red 6): Put do direktorijuma u kojem su html datoteke, ostavimo ovo u / var / www / jer će to biti samo test
Sada samo treba kopirati html datoteku u mapu koju definiramo u našoj VHost datoteci, / var / www /:
mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/
Zatim ponovo pokrenemo Nginx i to je to:
service nginx restart
I voila, pojavit će se nešto poput ovoga:
Podsjećam vas da prvo radimo s Nginxom za HTML, bez podrške za PHP, ova instalacija PHP-a i povezivanje s Nginxom bit će sadržaj sljedećeg vodiča (obećavam za nekoliko dana).
U svakom slučaju, ovo je vodič za instalaciju i konfiguraciju Nginxa, tako da radi čisto, to jest, HTML stranica, nadam se da će vas zanimati.
Pojasnit ću da da, još uvijek postoje najbolje prakse koje se mogu koristiti, međutim, pričekajmo da završimo ovu seriju vodiča i tada ćemo procijeniti konačni rezultat rada 😉
Saludos
Hvala, vrlo korisno!
Hvala vam na komentaru
U backportsima postoji nginx 1.4 ..
Da, ali na serveru u proizvodnji ne koristim ništa od toga 😀
Pod "to" mislite na najnoviju stabilnu i testiranu verziju koju je objavio nginx, činićete da zvuči kao da je apt-pinning sa sida. ~ _ ~
Ma daj, je li to ... na poslužiteljima nikada nisam volio koristiti druge repo-lokacije, pozadinske pozadine ili nešto slično 🙂
Uvijek stabilan na serverima, to sam naučio godinama.
Nginx 1.4 je stabilan od prošlog aprila, u backportsima je 1.4.1-3.
2013-04-24
Objavljena je stabilna verzija nginx-1.4.0 koja uključuje mnoge nove funkcije razvijene u grani 1.3.x - podrška za proksiranje WebSocket veza, OCSP heftanje, SPDY modul, gunzip filter i još mnogo toga.
http://nginx.org/en/CHANGES-1.4
U pravu si u onome što kažeš, kapa mi je skinuta.
Hvala na dijeljenju, trenutno primjenjujem vaš najstariji post u praksi.
Ispunit ću vas pitanjima XD
Hvala na čitanju 🙂
Ako imate bilo kakvih pitanja ili nedoumica, znate, mi smo tu da pomognemo, tu je forum.desdelinux.net gde ćemo zajedno pokušati da Vam ponudimo najbolje rešenje
Saludos
Imam pitanje imam LAMP [Linux (Debian Wheezy), Apache, PHP i MySQL] pokrenut na mom serveru za WordPress i Owncloud, kako preći na Ngnix, drugo je pitanje koja je razlika između Ngnixa i Lighttpda.
Najveća komplikacija ili poteškoća za migraciju s Apachea na Nginx su konfiguracije svake web lokacije, odnosno .htaccess koji koristite.
.Htaccess je najsloženiji pri prelasku na Nginx, jer su to različite konfiguracije koje morate staviti u Nginx VHost.
O LightHTTPd-u i Nginxu ... Ne znam, LightHTTPd sam koristio samo jednom prije mnogo godina, trenutno nemam pojma kako ide njegov razvoj, konkretno koristeći PHP.
NGINX izgleda prilično jednostavno u odnosu na Apache. Čeka se da sljedeća epizoda bude u mogućnosti da je dopuni PHP-om
Čekam savjete za optimizaciju više za nginx 😀
Inače, Gaara, u svoj sljedeći vodič možete uključiti kako implementirati SSL podršku.
Pozdrav.
Savjeti koji dolaze su zapravo za optimizaciju PHP obrade, keširanje stranice, mogu dati primjer konfiguracije koju koristimo u DesdeLinux za Nginx+Wordpress+W3_Total_Cache :)
Hvala vam dobar doprinos
A vodič za archlinux kada? xD
U Archu je bilo vrlo slično, mijenjaju se samo imena paketa, ali ... conf je gotovo identičan
Ali ko ima proizvodni server sa Archom? 😀
Zdravo,
Opet sam ja xD ...
Slijedio sam vaše korake primjenjujući ih na stroju s archlinuxom i imam sljedeći 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)
Bilo koji prijedlog 😀
Jo ... xox, želim samo interni server, odnosno želim zamijeniti samo xampp, da li bih sve ovo trebao raditi?
Ako želite, možete to implementirati (što ponavljam, s tim radi DL), zapravo moj virtualni server (koji koristim za razvoj i testiranje) to sam učinio sa istom onom stvari koju objašnjavam.
Odnosno, možete ukloniti XAMPP i staviti ovu varijantu i ona će raditi dobro, ili ako želite napustiti XAMPP ... i dalje će raditi za vas.
Pozitivna poanta korištenja ovoga koju pokazujem je vrlo mala potrošnja hardvera u usporedbi s Apacheom, ali na vašem osobnom računaru, koji nije zahtjevni hosting, daleko od toga ... ako XAMPP dobro funkcionira za vas, ne vidim zašto ga ukloniti 🙂
Već imam pokrenut svoj Linux server (Debian, Nginx, MySQL i PHP). Teško sam navukao PHP da radi s Nginxom jer sam bio naviknut na jednostavni Apache Web Server.
Pa, moje pitanje je: Zna li neko kako mogu na svoj server usmjeriti test domenu koju sam kupio? Želio bih isprobati svoju .com domenu da vidim kako to funkcionira, ali nemam ni najmanju ideju kako to učiniti, jer sam uvijek koristio NOIP adresu da bih joj pristupio s noip DUC-om.
Nadam se da mi neko može pomoći, hvala!
Dobivam ovo kada se pokušavam povezati s vašim ftp-om:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
HTTP zahtjev poslan, čeka odgovor ... 404 Nije pronađen
2015-11-23 17:46:30 POGREŠKA 404: Nije pronađena.
Imam pokrenut CentOS server (Gunicorn, Nginx, PHP) trebalo mi je puno posla da ih natjeram da rade, ali poanta u kojoj sam zapeo je da web stranici koju želim pokrenuti treba konfiguracija dobavljača domene, u ovom slučaju Go Daddy, U ovom trenutku ne znam kako da nastavim.
Možete li podijeliti konfiguracijske datoteke sa mnom jer ih ne mogu preuzeti