Jak nastavit aplikaci Node.js pro produkci na Rocky Linux 9

Ú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.