Node.js je populární a výkonný nástroj pro vývoj serverových aplikací, které mohou být spuštěny na různých platformách. Pro zajištění stabilního a efektivního běhu těchto aplikací na virtuálních privátních serverech (VPS) je klíčová jejich správná konfigurace a optimalizace. V tomto článku se zaměříme na optimalizaci výkonu Node.js aplikací s využitím správce procesů PM2 a Nginx jako reverse Proxy.
PM2: Správce procesů pro Node.js aplikace
PM2 je robustní, efektivní a všestranný správce procesů pro Node.js aplikace, který se postará o správu vašich aplikací v produkčním prostředí. Nabízí funkce jako automatický restart aplikací v případě jejich pádu, umožňuje snadné škálování aplikací bez nutnosti zastavit a restartovat celý server, a poskytuje užitečný dashboard pro monitoring výkonu aplikací.
-
Instalace PM2
PM2 nainstalujete pomocí npm (Node package manager) příkazem:
npm install pm2@latest -g
-
Spuštění aplikace s PM2
Aplikaci můžete spustit pomocí PM2 jednoduše takto:
pm2 start app.js
-
Automatický restart a škálování
PM2 umožňuje nastavit, aby se aplikace automaticky restartovala po pádu nebo při změně souborů. Škálování aplikace podle dostupných CPU jader můžete provést příkazem:
pm2 scale app 4
-
Monitoring a logování
Pro zobrazení běžících aplikací a monitorování jejich výkonu slouží příkaz:
pm2 monit
Nginx jako reverse proxy
Nginx je vysokovýkonný HTTP server a reverse proxy, který může zvýšit výkon a bezpečnost vaší Node.js aplikace tím, že slouží jako intermediář mezi uživateli a aplikací běžící na Node.js.
-
Instalace Nginx
Na většině Linuxových distribucí můžete Nginx nainstalovat pomocí správce balíčků:
sudo apt-get update
sudo apt-get install nginx
-
Konfigurace jako reverse proxy
Konfigurační soubor pro Nginx, obvykle umístěný v /etc/nginx/sites-available/default
, upravte tak, aby Nginx přesměrovával požadavky na portu 80 na port, kde běží vaše Node.js aplikace (např. 3000).
server {
listen 80;
server_name example.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;
}
}
-
Optimalizace a bezpečnost
Konfigurací Nginx můžete také zlepšit bezpečnost (např. omezením přístupu, HTTPS) a výkon (komprese dat, cachování) vaší aplikace.
Optimalizace Node.js aplikací pomocí PM2 a Nginx reverse proxy je efektivní způsob, jak zlepšit jejich výkon, stabilitu a bezpečnost na VPS. S touto kombinací můžete dosáhnout vyšší dostupnosti a lepšího využití serverových zdrojů, což je zásadní pro běh kritických a vysoko dostupných aplikací.