U ovom članku ćemo detaljno objasniti kako postaviti vašu NestJS aplikaciju na Ubuntu virtuelni privatni server (VPS), koristeći Nginx kao posrednički server. Nginx je poznat po svojoj izvanrednoj efikasnosti i prilagodljivosti, što ga čini idealnim za upravljanje velikim prometom i zahtevnim aplikacijama.
Zašto odabrati NestJS i Nginx?
NestJS je okvir za kreiranje efikasnih i skalabilnih Node.js aplikacija, koji koristi TypeScript za osiguranje tipova. On pruža strukturu i organizaciju koda, pojednostavljuje testiranje i održavanje, omogućavajući vam da razvijate visokoperformantne veb aplikacije, REST API-je, mikroservise i još mnogo toga.
Nginx je, s druge strane, snažan i fleksibilan veb server koji se može koristiti kao reverzni proksi, veb server, keš server, i u mnogim drugim ulogama. Njegova efikasnost, skalabilnost i sposobnost rukovanja velikim prometom čine ga optimalnim izborom za vaše NestJS aplikacije.
Koraci za postavljanje NestJS aplikacije sa Nginx-om na Ubuntu VPS-u
1. Priprema VPS servera
- Instalirajte Ubuntu VPS: Započnite sa svežom instalacijom Ubuntu VPS-a.
- Ažurirajte sistem: Koristite komandnu liniju za ažuriranje Ubuntu sistema:
sudo apt update && sudo apt upgrade -y
- Instalirajte Node.js: Koristite npm (Node Package Manager) za instalaciju Node.js:
sudo apt install nodejs npm -y
- Provera verzije: Proverite verzije Node.js i npm:
node -v
npm -v
2. Instalacija Nginx-a
- Instalirajte Nginx: Koristite komandnu liniju za instalaciju Nginx-a:
sudo apt install nginx -y
- Proverite status: Proverite da li Nginx radi:
sudo systemctl status nginx
3. Konfiguracija Nginx-a
- Otvorite konfiguracioni fajl:
sudo nano /etc/nginx/sites-available/default
- Dodajte Nginx blokove:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Objašnjenje:
listen 80;
– Definiše port na kojem će Nginx slušati (80 je standardni HTTP port).server_name your-domain.com;
– Zameniteyour-domain.com
sa vašim domenom.proxy_pass http://localhost:3000;
– Preusmerava zahteve na vaš NestJS server na portu 3000 (proverite da li je to pravi port za vašu aplikaciju).proxy_http_version 1.1;
– Koristi HTTP/1.1 protokol za proksiranje.proxy_set_header...
– Postavlja zaglavlja za proksiranje.
- Sačuvajte i zatvorite fajl.
4. Pokrenite Nginx:
sudo systemctl restart nginx
5. Postavite NestJS aplikaciju
- Izgradite NestJS aplikaciju: Koristite komandu
npm run build
za kreiranje izvršne datoteke vaše NestJS aplikacije. - Prebacite datoteke: Prebacite izvršnu datoteku na VPS server (koristite FTP klijent ili
scp
komandu). - Pokrenite NestJS server: Koristite komandu
npm start
za pokretanje NestJS servera.
6. Testiranje i održavanje
- Proverite učitavanje veb stranice: Otvorite pregledač i posetite vaš domen (npr. your-domain.com).
- Nadgledajte status Nginx-a: Koristite
sudo systemctl status nginx
za proveru rada Nginx-a. - Restartujte Nginx: Koristite
sudo systemctl restart nginx
za ponovno pokretanje Nginx-a. - Ažurirajte NestJS aplikaciju: Kada su dostupna ažuriranja za vašu aplikaciju, prebacite nove datoteke na server i restartujte NestJS i Nginx servere.
Dodatna razmatranja
- SSL sertifikati: Za sigurniju veb komunikaciju, koristite SSL sertifikate za vaš domen.
- Keširanje: Nginx nudi mogućnost keširanja statičkih sadržaja radi poboljšanja performansi.
- Log fajlovi: Nginx generiše log fajlove koji sadrže informacije o zahtevima i greškama.
- Zaštita od DDoS napada: Nginx može pomoći u zaštiti od DDoS napada konfiguracijom odgovarajućih pravila.
Zaključak
Postavljanje NestJS aplikacije sa Nginx-om na Ubuntu VPS-u je relativno jednostavan proces. Prateći gore opisane korake, možete uspešno postaviti vaše veb aplikacije na server i iskoristiti sve prednosti koje Nginx pruža. Nginx je moćan alat koji vam može pomoći da optimizujete performanse, skalabilnost i sigurnost vašeg veb sajta, čime se postiže optimalno korisničko iskustvo.
Često postavljana pitanja (FAQ)
1. Šta je Nginx?
Nginx je izuzetno efikasan i prilagodljiv veb server koji se koristi kao reverzni proksi, veb server, keš server i još mnogo toga. Poznat je po svojoj skalabilnosti i sposobnosti da upravlja velikim prometom.
2. Zašto je Nginx odličan izbor za NestJS aplikacije?
Nginx je idealan za NestJS aplikacije zbog svoje efikasnosti, skalabilnosti i sposobnosti da se ponaša kao reverzni proksi za te aplikacije.
3. Kako instalirati Nginx?
Nginx se instalira na Ubuntu VPS-u komandom sudo apt install nginx -y
.
4. Kako konfigurisati Nginx za NestJS aplikaciju?
Konfigurišite Nginx tako što ćete urediti fajl /etc/nginx/sites-available/default
i dodati blokove koji će preusmeravati zahteve na vaš NestJS server.
5. Kako pokrenuti Nginx?
Nginx se pokreće komandom sudo systemctl restart nginx
.
6. Kako postaviti NestJS aplikaciju na Ubuntu VPS?
Izgradite NestJS aplikaciju, prebacite datoteke na VPS, pokrenite NestJS server i konfigurišite Nginx da proksira zahteve ka vašem NestJS serveru.
7. Kako ažurirati NestJS aplikaciju na serveru?
Prebacite nove datoteke na server i restartujte NestJS i Nginx servere.
8. Šta su SSL sertifikati?
SSL sertifikati su digitalni sertifikati koji se koriste za enkripciju komunikacije između veb servera i pregledača, čineći veb sajt sigurnijim.
9. Šta je keširanje?
Keširanje je tehnika za bržu isporuku statičkih sadržaja veb sajta, što poboljšava performanse.
10. Gde mogu pronaći više informacija o Nginx-u?
Više informacija o Nginx-u možete pronaći na zvaničnom sajtu: https://nginx.org/
Tagovi: NestJS, Nginx, Ubuntu, VPS, postavljanje, veb aplikacije, reverzni proksi, Node.js, TypeScript, veb server, keširanje, SSL sertifikati, DDoS, log fajlovi.