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

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

Увод

Rocky Linux 9 је моћна дистрибуција Linux-а која пружа стабилно и сигурно окружење за покретање веб апликација. Node.js је популаран JavaScript runtime који се широко користи за развој динамичких веб апликација. У овом чланку ћемо вам пружити детаљно упутство о томе како да подесите Node.js апликацију за продукцију на Rocky Linux 9.

Инсталација Node.js

Први корак је инсталација Node.js на ваш Rocky Linux 9 сервер. Препоручује се коришћење менаџера пакета Rocky Linux-а, ДНФ-а. Извршите следеће команде:


sudo dnf install nodejs

Инсталација PM2

PM2 је менаџер процеса за Node.js који нам омогућава да управљамо нашим апликацијама на лак и ефикасан начин. Инсталирајте PM2 користећи наредбу:


sudo npm install pm2 -g

Подешавање апликације

Креирајте директоријум за своју Node.js апликацију и пређите у њега:


mkdir my-app
cd my-app

Иницијализујте npm пројекат унутар директоријума:


npm init -y

Инсталирајте потребне зависности за вашу апликацију користећи npm:


npm install express

Креирајте основну Node.js апликацију у my-app/index.js:

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

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

app.listen(3000);

Покретање апликације

Да бисте покренули апликацију, користите PM2:


pm2 start index.js

Ово ће покренути апликацију и направити да PM2 управља њоме. Да бисте проверили да ли апликација ради, посетите http://localhost:3000 у свом веб претраживачу.

Подешавање за продукцију

До сада смо подесили основну Node.js апликацију на Rocky Linux 9. Да бисмо је припремили за продукцију, морамо да предузмемо додатне кораке:

1. Подешавање процеса PM2

Модификујте датотеку конфигурације PM2, /etc/pm2/config.js, и додајте следеће:

javascript
module.exports = {
apps: [{
name: 'my-app',
script: '/my-app/index.js',
instances: 1,
exec_mode: 'cluster',
autorestart: true, // Аутоматски рестартуј ако процес падне
watch: true, // Прати промене у датотеци и поново покрени ако је потребно
env: {
NODE_ENV: 'production' // Подеси NODE_ENV на 'production'
}
}]
};

2. Подешавање веб сервера

У продукцији најбоље је поставити веб сервер испред ваше Node.js апликације. Nginx је популаран лаган веб сервер који можемо користити:


sudo dnf install nginx

Креирајте нову конфигурацију за Nginx у /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;
}
}

Замените www.example.com са стварним доменским именом ваше апликације.

3. Подешавање SSL/TLS (опционално)

Да бисте заштитили комуникацију између корисника и ваше апликације, препоручује се постављање SSL/TLS сертификата:


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

У датотеци my-app.conf додајте следеће:


server {
...

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

4. Повезивање са базом података (опционално)

Ако ваша апликација користи базу података, морате да је конфигуришете и повежете. Поступак варира у зависности од типа базе података коју користите.

Закључак

У овом чланку смо детаљно приказали како да подесите Node.js апликацију за продукцију на Rocky Linux 9. Извршили смо следеће кораке:

* Инсталирање Node.js и PM2
* Подешавање Node.js апликације
* Покретање апликације помоћу PM2
* Подешавање за продукцију, укључујући веб сервер, SSL/TLS и повезивање са базом података

Следећи ови кораци, обезбедићете да ваша Node.js апликација ради стабилно и ефикасно у продукционом окружењу.

Често постављана питања

1. Које су предности коришћења PM2?

PM2 пружа низ предности, укључујући аутоматско рестартовање, кластерирање и праћење процеса. То олакшава управљање више Node.js апликација на једном серверу.

2. Како могу да надгледам своју Node.js апликацију?

PM2 пружа различите методе за надгледање, као што су веб интерфејс и CLI наредбе. Такође можете користити алате као што су New Relic или Datadog за напредније надгледање.

3. Шта је NODE_ENV променљива окружења?

NODE_ENV је променљива окружења која указује на тренутно окружење у којем се ваша апликација покреће. Подешавање NODE_ENV на ‘production’ омогућава апликацији да учита одговарајуће конфигурације и искључи одређене функције у фази развоја.

4. Који је најбољи веб сервер за Node.js апликације?

Nginx је популаран лаган веб сервер који добро функционише са Node.js апликацијама. Међутим, можете користити и друге веб сервере као што су Apache или Caddy.

5. Како могу да заштитим комуникацију на својој Node.js апликацији?

Можете да поставите SSL/TLS сертификат на ваш веб сервер да бисте шифровали комуникацију између корисника и ваше апликације. Ово пружа додатни слој безбедности и поверења.

6. Како могу да повежем своју Node.js апликацију са базом података?

Процес повезивања са базом података варира у зависности од типа базе података коју користите. Consultujte dokumentaciju za baze podataka koju koristite za detaljna upustva.

7. Како могу да аутоматизујем процес постављања?

Можете да користите алате за аутоматизацију као што су Ansible или Puppet да аутоматизујете процес постављања и конфигурације за ваше Node.js апликације.

**8. Где могу да нађем додатне ресурсе за постављање Node.js апликација на Rocky Linux