NODE JS

Node.js — это кроссплатформенная среда выполнения с открытымисходным кодом, построенная на базе Chrome V8 Engine, котораяпозволяет разработчикам создавать масштабируемые ивысокопроизводительные сетевые приложения.

Описание

Данный шаблон позволяет быстро развернуть сервер NodeJS v14.15.5 c Nginx 1.18.0, NPM 6.14.11, Yarn 1.22.10, PM2 4.5.4

В дополнение к установленному программному обеспечению, на образе выполнены следующие настройки:

Активирован firewall и разрешены порты SSH (22), HTTP (80), HTTPS (443).

Начало работы с Node js

После создания сервера вы можете вставить его IP-адрес в браузер и увидеть надпись “Hello World!”. Это результат работы тестового приложения, расположенного в /var/www/hello

Чтобы остановить его, выполните команду:

pm2 delete hello

Следующая команда удалит его из конфигурации и автозагрузки:

pm2 save

Вы можете залить код своего приложения любым удобным способом (например, через git clone), после чего нужно поменять порт 3000 на порт вашего приложения в файле /etc/nginx/sites-enabled/default (строка proxy_pass http://localhost:3000;)

Запускать приложения NodeJS также лучше через PM2. Следующая команда запустит приложение под системным пользователем nodejs c ограниченными правами:

pm2 start /var/www/yourapp/app.js -u nodejs

pm2 save

Подробнее об управлении процессами PM2 вы можете прочитать в официальной документации: https://pm2.keymetrics.io/docs/

Nginx предварительно настроен на отдачу статических файлов из каталога /var/www/hello/public . Если хотите настроить отдачу статических файлов своего проекта, просто измените путь после слова “root” на каталог со статическими файлами в файле /etc/nginx/sites-enabled/default

Настройка HTTPS (Опционально)

Для настройки HTTPS у VDS должно быть действующее DNS имя, укажите в /etc/nginx/sites-enabled/default в разделе server имя сервера (например):

server_name opencart.mydomain.ru;

Переазапустите nginx:

service nginx restart

Запустите certbot:

sudo /usr/local/bin/certbot-auto --nginx

Введем свой e-mail, cогласимся с условиями сервиса (A), Подписка на рассылку (опционально) (N), выберем доменные имена для которых нужно издать сертификат (Enter для всех).

В случае если все прошло без ошибок, мы увидим сообщение об успешной выдаче сертификатов и настройке сервера:

Congratulations! You have successfully enabled ...

После этого подключения на 80 порт будут перенаправляться на 443 (https).

Добавим в /etc/crontab для автоматического обновления сертификатов:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"