Úvodní informace
Node.js se stal oblíbeným běhovým prostředím pro tvorbu backendových a síťových aplikací s využitím JavaScriptu. Jeho předností je vysoká efektivita, rozšiřitelnost a adaptabilita, což z něj dělá vhodnou volbu pro vývoj moderních webových aplikací a služeb.
Pro úspěšné nasazení Node.js aplikace do produkce je klíčové ji správně nastavit a konfigurovat. Tento návod vám krok za krokem ukáže, jak připravit Node.js aplikaci pro produkční provoz na operačním systému Rocky Linux 9.
Instalace Node.js
Nejprve je třeba nainstalovat Node.js do vašeho systému Rocky Linux 9. Existuje několik metod, jak toho docílit:
Využití správce balíčků dnf
Stabilní verzi Node.js můžete jednoduše instalovat pomocí správce balíčků dnf.
sudo dnf install nodejs
Nástroj NVM (Node Version Manager)
NVM je užitečný nástroj, který umožňuje správu více verzí Node.js na jediném systému. Pro jeho instalaci a použití postupujte podle následujících kroků:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install <požadovaná verze Node.js>
Vytvoření Node.js aplikace
Po úspěšné instalaci Node.js je čas vytvořit novou aplikaci. Založte si složku pro vaši aplikaci a inicializujte ji pomocí npm:
mkdir moje-nova-aplikace
cd moje-nova-aplikace
npm init -y
Následně vytvořte soubor app.js
a vložte do něj tento kód:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Vítejte!');
});
app.listen(3000, () => {
console.log('Server běží na portu 3000');
});
Nasazení Node.js aplikace
Nginx jako reverzní proxy
Nginx je populární webový server, který může sloužit jako reverzní proxy pro vaši Node.js aplikaci. Pro instalaci použijte dnf:
sudo dnf install nginx
Poté upravte konfigurační soubor Nginx /etc/nginx/nginx.conf
a přidejte do něj následující blok:
server {
listen 80;
server_name moje-aplikace.mujdomena.cz;
location / {
proxy_pass http://localhost:3000;
}
}
Systemd jako správce služeb
Systemd je výchozí systém pro správu služeb v Rocky Linux 9. Vytvořte konfigurační soubor služby pro vaši aplikaci Node.js:
sudo nano /etc/systemd/system/moje-nova-aplikace.service
Vložte do něj tento obsah:
[Unit]
Description=Moje nová Node.js aplikace
After=network.target
[Service]
ExecStart=/usr/bin/node /moje-nova-aplikace/app.js
ExecStop=/usr/bin/pm2 delete moje-nova-aplikace
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Aplikaci spustíte následovně:
sudo systemctl start moje-nova-aplikace
Volitelné: Balíčkování Node.js aplikace
Pro nasazení vaší Node.js aplikace jako balíčku RPM můžete využít nástroj rpm-builder
.
sudo dnf install rpm-builder
Vytvořte soubor SPEC
:
Name: moje-nova-aplikace
Version: 1.0.0
Release: 1
Summary: Moje nová Node.js aplikace
License: MIT
BuildRequires: nodejs
%description
Moje nová Node.js aplikace
%files
/moje-nova-aplikace
Spusťte příkaz rpmbuild
:
rpmbuild -bb moje-nova-aplikace.spec
Monitorování a údržba
Pro zajištění bezproblémového provozu vaší Node.js aplikace je důležité ji pravidelně monitorovat a udržovat.
Monitorování
Doporučujeme použít nástroje jako PM2 nebo node-monitor pro sledování vaší aplikace. Poskytnou vám cenné informace o využití zdrojů, chybách a celkovém výkonu.
Údržba
Pravidelně aktualizujte svou aplikaci Node.js a její závislosti. Nezapomeňte provádět zálohy aplikace a konfigurace pro případné obnovení po selhání.
Závěr
Nyní máte úspěšně nakonfigurovanou aplikaci Node.js pro produkční provoz na Rocky Linux 9. Zde je několik doporučení pro zajištění jejího hladkého běhu:
- Sledujte výkon aplikace a řešte případné problémy.
- Pravidelně provádějte aktualizace a zálohování.
- Dodržujte osvědčené postupy pro zabezpečení a optimalizaci výkonu.
- Přizpůsobte architekturu nasazení, například pomocí clusterování nebo load balancingu, dle potřeby.
Dodržováním těchto doporučení zajistíte spolehlivý, škálovatelný a bezpečný provoz vaší Node.js aplikace.
Často kladené otázky
Otázka: Jakou verzi Node.js je nejvhodnější používat pro produkční prostředí?
Odpověď: Nejvhodnější je používat nejnovější stabilní verzi LTS (s dlouhodobou podporou) Node.js.
Otázka: Je použití Nginx pro reverzní proxy povinné?
Odpověď: Nginx není nezbytný, ale doporučuje se pro zlepšení výkonu a zabezpečení.
Otázka: Jak mohu změnit port, na kterém aplikace Node.js naslouchá?
Odpověď: Změňte číslo portu v souboru app.js
a restartujte aplikaci.
Otázka: Jak nakonfigurovat správu logů pro aplikaci Node.js?
Odpověď: Doporučujeme použít knihovny třetích stran, jako jsou Winston
nebo pino
pro správu logů.
Otázka: Jak škálovat Node.js aplikaci?
Odpověď: Zvažte použití clusterování nebo load balancingu pro horizontální škálování aplikace.
Otázka: Jaké jsou nejlepší postupy pro zabezpečení Node.js aplikací?
Odpověď: Seznamte se s doporučeními OWASP pro Node.js a implementujte opatření jako validaci vstupů, prevenci SQL injection a ochranu před CSRF útoky.
Otázka: Jak mohu ladit (debugovat) aplikaci Node.js?
Odpověď: Použijte nástroje jako node-inspector
nebo debug-brk
k ladění aplikace a identifikaci chyb.
Otázka: Kde najdu další informace o Node.js?
Odpověď: Prozkoumejte oficiální dokumentaci Node.js na webu a npmjs pro knihovny třetích stran.