6.18 Як встановити та розгорнути проєкт на NodeJS
Node.js являє собою потужну платформу для створення швидких і масштабованих мережевих додатків. Заснована на рушії V8 від Google Chrome, ця технологія дозволяє використовувати JavaScript на стороні сервера, що відкриває нові можливості для розробників.
У сучасному світі Node.js став невід’ємною частиною екосистеми, дозволяючи створювати все: від простих веб-серверів до складних мікросервісних архітектур. Його подієво-орієнтована архітектура та неблокуючий ввід/вивід роблять його особливо ефективним для додатків реального часу.
Важливою перевагою Node.js є величезна спільнота розробників та багата екосистема пакетів npm (Node Package Manager), що істотно прискорює процес розробки та впровадження нових функцій.
Що таке Node.js і навіщо він потрібен?
Node.js використовується для:
- Створення веб-серверів та API.
- Розробки real-time додатків (чати, ігри).
- Створення інструментів командного рядка.
- Обробки потокових даних.
- Мікросервісної архітектури.
Важливо: перед встановленням Node.js переконайтеся, що у Вас є права адміністратора root
на сервері. Також рекомендується створити резервну копію важливих даних перед внесенням істотних змін у систему.
Встановлення Node.js
Node.js можна встановити кількома способами. Найпростіший метод – через стандартні репозиторії операційної системи. Цей спосіб підходить для швидкого старту та тестування, але може надати не найновішу версію Node.js. Розберемо приклад встановлення для ОС Ubuntu/Debian та CentOS.
У процесі встановлення будуть встановлені два основних компоненти:
- Node.js – середовище виконання JavaScript.
- npm (Node Package Manager) – менеджер пакетів, який дозволяє встановлювати додаткові модулі.
Найпростіший спосіб встановлення через стандартні репозиторії. Розберемо приклад встановлення для різних ОС.
Ubuntu/Debian:
Оновлення списку пакетів
Встановлення Node.js та npm
Перевірка версії:
CentOS/AlmaLinux/RockyLinux:
Оновлення системи:
Встановлення epel-release:
Встановлення Node.js та npm:
Перевірка версій
Інформуємо:
при встановленні через apt
або yum
Ви можете отримати не найновішу версію Node.js. Якщо Вам потрібна конкретна або найсвіжіша версія, рекомендується використовувати nvm.
Встановлення через nvm (Node Version Manager) надає більш гнучкий підхід до управління версіями Node.js. Цей інструмент особливо корисний, коли Вам потрібно:
- Працювати з різними проектами, що вимагають різні версії Node.js.
- Тестувати код на різних версіях Node.js.
- Легко оновлюватися до нових версій.
- Уникнути проблем з правами доступу при встановленні глобальних пакетів.
Процес встановлення nvm включає наступні етапи:
- Завантаження інсталяційного скрипта.
- Налаштування змінних середовища.
- Встановлення необхідної версії Node.js.
Процедура встановлення через nvm (Node Version Manager).
Переваги використання nvm:
- Легке перемикання між версіями Node.js.
- Можливість встановлення останніх версій.
- Ізольовані середовища для різних проектів.
- Не вимагає sudo для встановлення пакетів.
Ubuntu/Debian:
Встановлення nvm:
Перезавантаження профілю shell:
Перегляд доступних версій:
Встановлення останньої версії Node.js:
Встановлення конкретної версії:
Перемикання між версіями:
Встановлення версії за замовчуванням:
CentOS/AlmaLinux/RockyLinux:
Встановлення необхідних залежностей:
Завантаження та встановлення nvm:
Додавання nvm в поточну сесію:
Перезавантаження профілю:
Перевірка встановлення nvm:
Встановлення останньої версії Node.js:
Або встановлення конкретної версії:
Розгортання проекту
Нагадуємо: при розробці комерційних проектів рекомендується використовувати LTS (Long Term Support) версії Node.js для забезпечення стабільності та безпеки.
Налаштування веб-сервера (Nginx)
Для роботи Node.js додатку в продакшені рекомендується використовувати веб-сервер як зворотний проксі. Існує кілька популярних варіантів:
- Nginx – легковісний та продуктивний веб-сервер.
- Apache – надійний та перевірений часом веб-сервер.
- Caddy – сучасний веб-сервер з автоматичною підтримкою HTTPS.
- HAProxy – спеціалізоване рішення для балансування навантаження.
У нашому прикладі ми розглянемо налаштування Nginx, як одного з найпопулярніших рішень.
Встановлення Nginx:
Ubuntu/Debian:
CentOS/AlmaLinux/RockyLinux:
Налаштування проксіювання
Приклад конфігурації Nginx:
Важливо розуміти ключові моменти конфігурації:
- Проксіювання дозволяє Node.js додатку працювати на внутрішньому порту, в той час як Nginx обробляє всі зовнішні запити.
- Налаштування WebSocket необхідні для роботи real-time функціоналу.
- Правильне налаштування логів допоможе у відлагодженні проблем.
- Таймаути захищають сервер від завислих з’єднань.
Нагадуємо: в продакшен-середовищі рекомендується також налаштувати:
- Стиснення відповідей (gzip).
- Кешування статичних файлів.
- SSL/TLS сертифікат.
- Обмеження розміру запитів.
Запуск додатку
Після встановлення Node.js та налаштування веб-сервера, необхідно забезпечити надійний запуск та підтримку роботи Вашого додатку. Для цього ми будемо використовувати PM2 – менеджер процесів для Node.js додатків.
PM2 надає наступні можливості:
- Автоматичний перезапуск додатку при збоях.
- Моніторинг ресурсів та логів.
- Балансування навантаження.
- Управління змінними середовища.
- Автозапуск при перезавантаженні сервера.
Встановлення PM2:
Запуск додатку:
Налаштування автозапуску:
Додатково: після налаштування автозапуску через PM2 ми рекомендуємо:
- Перезавантажити сервер і перевірити що додаток запустився.
- Перевірити статус процесу через
pm2 list
. - Переглянути логи через
pm2 logs
.
Далі будуть продемонстровані основні команди PM2 для управління Node.js додатком.
Запуск додатку:
Зупинка:
Перезапуск:
Перегляд логів:
Моніторинг процесів:
Висновок
Node.js надає потужний інструментарій для створення сучасних веб-додатків. При правильному налаштуванні та обслуговуванні Ваш додаток працюватиме стабільно та ефективно. Регулярне оновлення компонентів та моніторинг продуктивності допоможуть забезпечити безпеку та надійність Вашого сервісу.
Для забезпечення стабільної роботи Вашого додатку рекомендується:
- Регулярно оновлювати Node.js та npm пакети.
- Використовувати логування для відстеження помилок.
- Налаштувати моніторинг системних ресурсів.
- Регулярно створювати резервні копії.