Подешавање Node.js апликације за продукцију на Rocky Linux 9

Uvod

Rocky Linux 9 predstavlja robustanu Linux distribuciju koja nudi stabilno i sigurno okruženje za pokretanje web aplikacija. Node.js je veoma popularan JavaScript runtime koji se često koristi pri razvoju dinamičnih web aplikacija. U ovom tekstu, pružićemo vam detaljan vodič o tome kako da pripremite Node.js aplikaciju za produkciono okruženje na Rocky Linux 9.

Instalacija Node.js

Prvi korak podrazumeva instalaciju Node.js na vašem Rocky Linux 9 serveru. Preporučuje se korišćenje upravitelja paketa Rocky Linux-a, odnosno DNF-a. Izvršite sledeće naredbe:

sudo dnf install nodejs

Instalacija PM2

PM2 je proces menadžer za Node.js, koji omogućava jednostavno i efikasno upravljanje aplikacijama. Instalirajte PM2 koristeći ovu komandu:

sudo npm install pm2 -g

Konfiguracija aplikacije

Kreirajte direktorijum za svoju Node.js aplikaciju i pređite u njega:

mkdir my-app
cd my-app

Inicijalizujte npm projekat unutar tog direktorijuma:

npm init -y

Instalirajte neophodne zavisnosti za svoju aplikaciju koristeći npm:

npm install express

Kreirajte osnovnu Node.js aplikaciju u datoteci my-app/index.js:


const express = require('express');
const app = express();

app.get('/', (req, res) => {
res.send('Hello, world!');
});

app.listen(3000);

Pokretanje aplikacije

Da biste pokrenuli aplikaciju, koristite PM2:

pm2 start index.js

Ovo će pokrenuti aplikaciju i omogućiti PM2 da upravlja njome. Da biste proverili da li aplikacija radi, posetite http://localhost:3000 u svom web pregledaču.

Konfigurisanje za produkciju

Do sada smo podesili osnovnu Node.js aplikaciju na Rocky Linux 9. Da bismo je pripremili za produkciju, moramo da sprovedemo dodatne korake:

1. Konfiguracija PM2 procesa

Modifikujte konfiguracioni fajl PM2, /etc/pm2/config.js, i dodajte sledeće:


module.exports = {
apps: [{
name: 'my-app',
script: '/my-app/index.js',
instances: 1,
exec_mode: 'cluster',
autorestart: true, // Automatski restartuj ako proces padne
watch: true, // Prati izmene u fajlu i ponovo pokreni ako je potrebno
env: {
NODE_ENV: 'production' // Postavi NODE_ENV na 'production'
}
}]
};

2. Konfigurisanje web servera

U produkcionom okruženju, najpoželjnije je postaviti web server ispred vaše Node.js aplikacije. Nginx je popularan, lagan web server koji možemo koristiti:

sudo dnf install nginx

Kreirajte novu konfiguraciju za Nginx u /etc/nginx/conf.d/my-app.conf:


server {
listen 80;
server_name www.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;
}
}

Zamenite www.example.com sa stvarnim imenom domena vaše aplikacije.

3. Konfigurisanje SSL/TLS (opciono)

Da biste zaštitili komunikaciju između korisnika i vaše aplikacije, preporučuje se postavljanje SSL/TLS sertifikata:

sudo dnf install mod_ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/nginx.key -out /etc/pki/tls/certs/nginx.crt

U fajlu my-app.conf dodajte sledeće:


server {
...

ssl_certificate /etc/pki/tls/certs/nginx.crt;
ssl_certificate_key /etc/pki/tls/private/nginx.key;
}

4. Povezivanje sa bazom podataka (opciono)

Ako vaša aplikacija koristi bazu podataka, morate da je konfigurišete i povežete. Postupak varira u zavisnosti od tipa baze podataka koju koristite.

Zaključak

U ovom tekstu smo detaljno opisali kako da podesite Node.js aplikaciju za produkciju na Rocky Linux 9. Izvršili smo sledeće korake:

* Instaliranje Node.js i PM2
* Podešavanje Node.js aplikacije
* Pokretanje aplikacije pomoću PM2
* Podešavanje za produkciju, uključujući web server, SSL/TLS i povezivanje sa bazom podataka

Sledeći ove korake, obezbedićete da vaša Node.js aplikacija radi stabilno i efikasno u produkcionom okruženju.

Često postavljana pitanja

1. Koje su prednosti korišćenja PM2?

PM2 nudi brojne prednosti, uključujući automatsko restartovanje, klasterizaciju i praćenje procesa. To olakšava upravljanje više Node.js aplikacija na jednom serveru.

2. Kako mogu da nadgledam svoju Node.js aplikaciju?

PM2 nudi različite metode za nadgledanje, kao što su web interfejs i CLI komande. Takođe, možete koristiti alate kao što su New Relic ili Datadog za naprednije nadgledanje.

3. Šta je NODE_ENV promenljiva okruženja?

NODE_ENV je promenljiva okruženja koja ukazuje na trenutno okruženje u kojem se vaša aplikacija pokreće. Postavljanje NODE_ENV na ‘production’ omogućava aplikaciji da učita odgovarajuće konfiguracije i isključi određene funkcije namenjene razvoju.

4. Koji je najbolji web server za Node.js aplikacije?

Nginx je popularan, lagan web server koji dobro funkcioniše sa Node.js aplikacijama. Međutim, možete koristiti i druge web servere kao što su Apache ili Caddy.

5. Kako mogu da zaštitim komunikaciju na svojoj Node.js aplikaciji?

Možete da postavite SSL/TLS sertifikat na vaš web server da biste šifrovali komunikaciju između korisnika i vaše aplikacije. Ovo nudi dodatni nivo sigurnosti i poverenja.

6. Kako mogu da povežem svoju Node.js aplikaciju sa bazom podataka?

Proces povezivanja sa bazom podataka varira u zavisnosti od tipa baze podataka koju koristite. Konsultujte dokumentaciju za bazu podataka koju koristite za detaljna uputstva.

7. Kako mogu da automatizujem proces postavljanja?

Možete da koristite alate za automatizaciju kao što su Ansible ili Puppet da automatizujete proces postavljanja i konfiguracije za vaše Node.js aplikacije.

8. Gde mogu da nađem dodatne resurse za postavljanje Node.js aplikacija na Rocky Linux?