U svetu web razvoja, Nginx se istakao kao izvanredan web server, prepoznat po svojim vrhunskim performansama, prilagodljivosti i efikasnosti. U ovom uputstvu, detaljno ćemo proći kroz proces postavljanja Nginx serverskih blokova, poznatih i kao virtuelni hostovi, na operativnom sistemu Rocky Linux 9. Ova konfiguracija će vam omogućiti da hostujete više web lokacija na jednom serveru, nudeći ekonomičan i efikasan pristup upravljanju vašim online prisustvom.
Uvod u virtuelne hostove
Pre nego što zaronimo u tehničke detalje, ključno je razumeti šta su tačno virtuelni hostovi. U osnovi, virtuelni host je konfiguracija unutar Nginx-a koja omogućava obradu zahteva za više domena sa jedne fizičke serverske mašine. Ovo se postiže postavljanjem jedinstvenih konfiguracija za svaki domen, specificirajući putanje do njegovih datoteka i resursa.
Ova funkcionalnost je od vitalnog značaja za kompanije koje se bave web hostingom, kao i za pojedince koji žele da upravljaju sa više web lokacija sa jedne centralizovane tačke. Virtuelni hostovi vam pružaju mogućnost da:
- Hostujete više web sajtova na jednom serveru: Optimizuje iskorišćavanje serverskih resursa i smanjuje troškove.
- Upravljate različitim sajtovima sa jedne konzole: Pojednostavljuje proces održavanja i konfiguracije.
- Odvojite resurse za svaki sajt: Dozvoljava vam da kontrolišete upotrebu resursa za svaki pojedinačni sajt, sprečavajući da jedan sajt negativno utiče na druge.
Početak konfiguracije
Pre nego što počnemo, neophodno je da imate instaliran Nginx server na vašem Rocky Linux 9 sistemu. Ukoliko Nginx nije instaliran, sledite ove korake:
1. Ažuriranje sistema:
sudo dnf update -y
2. Instalacija Nginx-a:
sudo dnf install nginx -y
3. Pokretanje Nginx-a:
sudo systemctl start nginx
4. Omogućavanje automatskog pokretanja Nginx-a pri startu sistema:
sudo systemctl enable nginx
Podešavanje virtuelnog hosta
Nakon što je Nginx uspešno instaliran, možemo da pređemo na konfigurisanje virtuelnog hosta.
1. Kreiranje direktorijuma za web sadržaj:
sudo mkdir /var/www/yourdomain.com/public_html
Zamenite yourdomain.com
sa vašim stvarnim imenom domena.
2. Podešavanje vlasništva nad direktorijumom:
sudo chown -R nginx:nginx /var/www/yourdomain.com
3. Kreiranje konfiguracione datoteke za virtuelni host:
sudo nano /etc/nginx/conf.d/yourdomain.com.conf
4. Sadržaj konfiguracione datoteke:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com/public_html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
Objašnjenje konfiguracione datoteke:
listen 80;
– Definiše port na kojem će Nginx slušati dolazne zahteve.server_name yourdomain.com www.yourdomain.com;
– Specifikuje ime domena povezano sa ovim virtuelnim hostom. Možete navesti više domena odvojenih razmakom.root /var/www/yourdomain.com/public_html;
– Označava osnovni direktorijum gde se nalaze datoteke web sajta.index index.html index.htm index.php;
– Definiše koje datoteke će biti prikazane kao početna stranica ako se ne specificira druga.location / { ... }
– Blok koji se primenjuje na sve zahteve.try_files $uri $uri/ =404;
– Traži datoteku po zadatoj putanji. Ako je pronađe, služi je. U suprotnom, vraća grešku 404.location ~ \.php$ { ... }
– Blok koji se primenjuje na sve PHP datoteke.fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
– Prosleđuje PHP zahteve PHP-FPM procesu.fastcgi_index index.php;
– Definiše PHP datoteku koja će biti korišćena kao početna stranica.include fastcgi_params;
– Uključuje dodatne parametre za konfiguraciju PHP-FPM.
5. Provera konfiguracije:
sudo nginx -t
Ukoliko nema grešaka, možete ponovo pokrenuti Nginx:
sudo systemctl restart nginx
Dodavanje SSL sertifikata
Za sigurnu komunikaciju sa web sajtom, neophodno je dodati SSL sertifikat. Preporučuje se upotreba Let’s Encrypt za besplatno generisanje SSL sertifikata.
1. Instaliranje certbot-a:
sudo dnf install certbot python3-certbot-nginx
2. Dobijanje SSL sertifikata:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
3. Ponovno pokretanje Nginx-a:
sudo systemctl restart nginx
Dodatne konfiguracije
Pored osnovnih podešavanja, Nginx pruža brojne napredne opcije za konfiguraciju. Neke od najčešćih su:
- Proksiranje: Nginx se može koristiti za proksiranje zahteva ka drugim serverima.
- Keširanje: Nginx može keširati statički sadržaj, čime se poboljšavaju performanse web sajta.
- Redirekcija: Nginx se može koristiti za preusmeravanje zahteva sa jedne adrese na drugu.
- Logovanje: Nginx može generisati log datoteke koje sadrže informacije o svim zahtevima.
Zaključak
Konfigurisanje virtuelnih hostova na Nginx-u je jednostavan proces koji omogućava hostovanje više web lokacija na jednom serveru. Ovo ne samo da štedi resurse, već i pojednostavljuje upravljanje i održavanje vaših web stranica. Upotrebom Let’s Encrypt-a za SSL sertifikate, obezbeđuje se sigurna komunikacija sa vašim web sajtom.
Važno je napomenuti da ovaj vodič pretpostavlja osnovno razumevanje Linux-a i Nginx-a. Za detaljniju optimizaciju i korišćenje naprednih funkcionalnosti, preporučuje se konsultovanje zvanične Nginx dokumentacije.
Često postavljana pitanja
1. Da li je moguće koristiti samo jedan virtuelni host u Nginx-u?
Da, moguće je koristiti samo jedan virtuelni host u Nginx-u ako želite da hostujete samo jedan web sajt. Međutim, time nećete iskoristiti sve prednosti koje nudi mogućnost korišćenja više virtuelnih hostova.
2. Koliko virtuelnih hostova mogu da kreiram u Nginx-u?
Broj virtuelnih hostova koje možete kreirati u Nginx-u zavisi od resursa vašeg servera. Ne postoje tehnička ograničenja, ali preveliki broj virtuelnih hostova može negativno uticati na performanse servera.
3. Da li je Nginx bolji od Apache-a?
Nginx i Apache su oba popularna i moćna web servera. Nginx je generalno brži i efikasniji, dok je Apache poznatiji po svojoj fleksibilnosti. Izbor između njih zavisi od specifičnih potreba vašeg projekta.
4. Šta je PHP-FPM i zašto je potreban?
PHP-FPM je FastCGI proces menadžer za PHP. On obrađuje PHP zahteve i omogućava bolje performanse u poređenju sa ugrađenim PHP proces menadžerom.
5. Da li se Nginx može koristiti kao proxy server?
Da, Nginx se može koristiti kao reverse proxy server. Ovo omogućava da proksirate zahteve ka drugim serverima, poput web servera ili baza podataka.
6. Koliko je bezbedno koristiti Let’s Encrypt za SSL sertifikate?
Let’s Encrypt je besplatan i pouzdan provajder SSL sertifikata. Njihova usluga je široko prihvaćena i koristi se na mnogim web sajtovima.
7. Kako mogu da generišem statistiku o performansama Nginx-a?
Nginx može da generiše statistiku o performansama u log datotekama. Ove datoteke možete analizirati pomoću alata za analizu log datoteka, kao što je AWStats.
8. Da li je Nginx kompatibilan sa drugim operativnim sistemima?
Da, Nginx je kompatibilan sa mnogim operativnim sistemima, uključujući Linux, Windows, macOS i Unix.
9. Kako da ažuriram Nginx?
Za ažuriranje Nginx-a koristite komandu sudo dnf update nginx
.
10. Da li postoje alternative Nginx-u?
Postoji nekoliko alternativa Nginx-u, kao što su Apache, lighttpd i Caddy.
Tagovi: Nginx, Rocky Linux 9, virtuelni host, web server, konfiguracija, SSL, Let’s Encrypt, PHP-FPM, proxy, keširanje, redirekcija, logovanje.