Kako napraviti server-blok na WebServeru: Nginx

Jovan Ranitović

Kako podesiti virtualni host na Nginx WebServeru

Ngnix WebServer je open-source Web Server koji se koristi u brojne svrhe, kao što su serviranje sadržaja, keširanje, media-streaming, load-balancing i još mnogo toga. Konfiguracija Ngninx servera se, kao i kod Apache WebServera, ne nalazi u samo jednom fajlu, ali za razliku od Apache-a koji je modularnog dizajna, Nginx koristi server-blokove. Ovi blokovi će u tekstu biti prikazani kao virtualni hostovi, a kao i kod Apache-a, jedna instanca Nginx servera može pokretati više sajtova, sve dok sam server to može da izdrži.

U ovom tekstu, opisaćemo kako podesiti virtualni host na WebServeru Nginx, na operativnom sistemu Ubuntu 20.04. Podešavanje na operativnim sistemima koji su bazirani na RHEL-u je gotovo identično, jedina razlika su putanje koje će se koristiti.

Šta je potrebno pre podešavanja virtualnog hosta na VPS serveru?

Korak 1: Kreiranje direktorijuma na Nginx serveru

Pre svega, potrebno je da imamo virtualni server (VPS) gde ćemo podešavati naš sajt. Ako nemate server, možete poručiti VPS Cloud server na našem portalu, a ukoliko ne želite da sami podešavate Nginx „od nule“, možete poručiti server sa već preinstaliranim LEMP stack-om (Linux WebServer sa (e)Nginx, MySQL-om i PHP-om).

Takođe, biće nam potreban plan gde hoćemo da kreiramo naš sajt. U ovom primeru, koristićemo uobičajenu Nginx-ovu strukturu sajtova, pa ćemo se na nju nadovezati sa našim sajtom, koji ćemo smestiti u public_html direktorijum. Dakle, naša putanja, koju ćemo koristiti je: /var/www/html/our_domain/public_html. Takođe, da bismo imali i lepši pregled logova, njih ćemo da izdvojimo u zaseban direktorijum, /var/www/html/our_domain/logs. Ovo ćemo postići tako što ćemo na našem serveru ukucati sledeće komande, naravno kao Root:

mkdir -pv /var/www/html/our_domain/public_html;
mkdir -pv /var/www/html/our_domain/logs;

Our_domain je potrebno zameniti domenom koji će biti u upotrebi. Nakon što smo kreirali navedene direktorijume, potrebno im je dodeliti određene permisije.

Korak 2: Dodavanje permisija i fajlova za sajt

Sada, kada smo kreirali naše direktorijume gde ćemo ubacivati fajlove, moramo im dodati permisije, kako bi Nginx mogao prići tim direktorijumima i čitati/pisati u njih. Ovo postižemo komandom chown.

chown -Rf www-data:www-data /var/www/html/our_domain/public_html;
chown -Rf www-data:www-data /var/www/html/our_domain/logs;

Primetićete da je u komandi navedenoj iznad korišćen korisnik www-data. Na Ubuntu OS Nginx se pokreće pod korisnikom www-data dok se na sistemima baziranim na RHEL-u, korisnik koji pokreće Nginx zove nginx. Da bismo mogli da vidimo naš sajt, sada je potrebno da napravimo neki fajl koji će nam prikazati sadržaj našeg sajta. Za primer, neka je to .html stranica, a pokazaćemo i kako izgleda i .php..

Našu najosnovniju stranicu možemo da kreiramo putem nano tekstualnog editora, a komanda koju ćemo pokrenuti je: nano /var/www/html/our_domain/public_html/index.html. Dobijamo prazan fajl, u koji možemo uneti sledeći tekst:

<html>
    <head>
        <title>Welcome to Our Domain Website!</title>
    </head>
    <body>
        <h1>Hello there! Our Domain just went live!</h1>
    </body>
</html>

Nakon što smo dodali sadržaj, potrebno je sačuvati fajl (CTRL + x i Shift +y), i još jednom pokrenuti dve komande navedene iznad ( chown -Rf www-data:www-data /var/www/html/our_domain/public_html && chown -Rf www-data:www-data /var/www/html/our_domain/logs ).

Kreiranje virtualnog hosta na VPS serveru

Korak 1: Kreiranje fajla virtualnog hosta

Na operativnim sistemima koji su bazirani na Debianu, kao što su, Ubuntu, Kali, etc… Nginx dolazi sa već konfigurisanim podrazumevanim virtualnim hostom, pod imenom default. Na RHEL distribucijama, ovo nije slučaj.

Kako je gore pomenuto, najlakši način za kreiranje fajla jeste koristiti tekstualni editor nano. Najlakši način jeste kopirati Nginx-ov prekonfigurisani virtualni host, ali kako je potrebno praviti izmene, pokazaćemo kako da sami napišete vaš lični virtualni host. 

Pokrenućemo komandu: nano /etc/nginx/sites-available/our_domain.conf i dobićemo fajl gde treba upisati sledeće:

server {
      listen 80;
      listen [::]:80;
      server_name our_domain.com www.our_domain.com;
      root /var/www/html/our_domain/public_html;
      index index.php index.html index.htm;
    location ~ \.php$ {
         fastcgi_pass unix:/run/php/php7.4.sock;
         fastcgi_param SCRIPT_FILENAME ;
         include fastcgi_params;
         include snippets/fastcgi-php.conf;
    }
    location / {
      try_files  / /index.php?;
    }
# Disable access to hidden files

   location ~ /\.ht {
     access_log off;
     log_not_found off;
     deny all;
    }
# Log

    access_log  /var/log/nginx/our_domain.com-ssl.access.log;
    error_log  /var/log/nginx/our_domain.com-ssl.error.log;
}

U bloku, gde govorimo šta ćemo raditi sa bilo kojim .php fajlom, u našem primeru koristimo PHP-FPM iz praktičnih razloga, jer je tako najlakše postići efekat odvajanja Linux usera, i podići više PHP procesa pod više korisnika.

Sada, kada smo sačuvali naš fajl virtualnog hosta (CTRL + x i Shift +y), preporuka je prvo testirati konfiguraciju koju smo napravili:

nginx -t

Ako smo dobili odgovor:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

možemo da aktiviramo naš virtualni host (server blok) komandom linkovanja fajlova::

cd /etc/nginx/sites-enabled; ln -s ../sites-available/our_domain.com.conf

Nakon aktivacije virtualnog hosta, možemo restartovati naš NginxWeb server komandom:

systemctl restart nginx

Nakon uspešnih testova, i uspešnog linkovanja fajla, vaš sajt je spreman. 

Korak 2: Testiranje

Ako je sve urađeno kako treba, dobićemo rezultat kao na slici ispod:

Zaključak

Kao što se da videti iz ovog teksta, Server blokove na Nginx WebServeru je veoma lako podesiti. Njegov sistem blokova dozvoljava da se dodaje više sajtova u sklopu blokova, što znači da ne morate da za svaki sajt zakupljujete novi VPS. Dovoljno je samo napraviti novi fajl sa konfiguracijom server-bloka za svaki domen, ponaosob. U ovom tekstu nije pokrivena SSL konfiguracija virtualnog hosta, to ćemo obratiti u zasebnom tekstu. 

Ako vam je potrebna pomoć u radu, naša podrška je i više nego spremna da vam odgovori na sva vaša pitanja i nedoumice, pišite nam.

PS. Pogledajte i kako da napravite virtualni host na Apache WebServeru.

 

Bez komentara

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *