Ko vaša Node.js aplikacija lokalno deluje brezhibno, je naslednji korak njena selitev na produkcijski spletni strežnik. Za razliko od PHP-ja, kjer datoteke preprosto odvržemo v mapo, Node.js zahteva lasten proces, ki mora teči neprekinjeno, in ustrezno konfiguracijo strežnika.
V tem vodiču si bomo pogledali profesionalen način namestitve Node.js na Linux (Ubuntu/Debian) strežnik z uporabo orodij NVM, upravljalnika procesov PM2 in spletnega strežnika Nginx.
1. Namestitev Node.js preko NVM
Namesto neposredne namestitve preko sistemskega upravljalnika paketov (apt) je veliko bolje uporabiti NVM (Node Version Manager). To vam omogoča enostavno preklapljanje med različicami Node.js brez podiranja sistemskih odvisnosti.
# Prenos in zagon NVM namestitvene skripte curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # Ponovno naloži nastavitve terminala source ~/.bashrc # Namestitev najnovejše stabilne LTS različice Node.js nvm install --lts # Preverjanje uspešnosti namestitve node -v npm -v
2. Poganjanje aplikacije v ozadju s PM2
Če aplikacijo zaženete z ukazom node app.js, se bo ta zaprla takoj, ko zaprete terminal. Da bi
aplikacija tekla 24/7 in se samodejno ponovno zagnala ob sesutju ali restartu strežnika, uporabimo procesni
upravljalnik PM2.
# Globalna namestitev PM2 preko npm sudo npm install pm2 -g # Zagon vaše aplikacije in poimenovanje procesa pm2 start app.js --name "moj-node-projekt" # Nastavitev samodejnega zagona PM2 ob restartu Linux strežnika pm2 startup # (Sledite ukazu, ki vam ga PM2 izpiše na zaslonu in ga skopirajte!) # Shranitev trenutnega stanja procesov pm2 save
3. Konfiguracija Nginx kot Reverse Proxy
Tvoja Node.js aplikacija običajno posluša na specifičnih vratih (npr. port 3000). Da bi bila dostopna svetu preko standardnih vrat 80 (HTTP) ali 443 (HTTPS), pred njo postavimo Nginx, ki bo deloval kot posrednik (Reverse Proxy).
Odpri konfiguracijsko datoteko za svojo spletno stran v Nginx-u:
sudo nano /etc/nginx/sites-available/default
Znotraj location / bloka prilagodi nastavitve tako, da bodo preusmerjale promet na lokalna vrata
tvoje aplikacije:
server {
listen 80;
server_name tvoja-domena.com www.tvoja-domena.com;
location / {
proxy_pass http://localhost:3000; # Vrata, kjer posluša Node.js
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;
}
}
Shrani datoteko, preveri Nginx konfiguracijo in znova zaženi strežnik:
sudo nginx -t sudo systemctl restart nginx
Sedaj je tvoja Node.js aplikacija varno izolirana v ozadju strežnika, Nginx pa profesionalno in hitro upravlja z vsemi zunanjimi zahtevami obiskovalcev.