DevGang
Авторизоваться

Как настроить NGINX и PM2 для балансировки нагрузки вашего сервера NodeJS, а затем как указать домен на ваш сервер

источник изображения: https://codeforgeek.com/how-to-setup-nginx-with-node-js-to-serve-static-files/
источник изображения: https://codeforgeek.com/how-to-setup-nginx-with-node-js-to-serve-static-files/

Прежде чем продолжить, что такое NodeJS?

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

NGINX?

NGINX или «Engine-X» — это программное обеспечение веб-сервера с открытым исходным кодом, которое служит обратным прокси-сервером, балансировщиком нагрузки HTTP и прокси-сервером электронной почты для IMAP, POP3 и SMTP.

и PM2?

PM2 — это демон-менеджер процессов, который поможет вам управлять вашим приложением и поддерживать его онлайн 24/7 (источник: https://pm2.keymetrics.io/)

Установка NodeJS с NVM

Использование nvm (Node.js Version Manager) упрощает установку нескольких версий Node.js и управление ими в одной локальной среде. Чтобы установить или обновить nvm, следует запустить скрипт установки. Для этого вы можете загрузить и запустить скрипт вручную или использовать следующую команду cURL или Wget:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

or

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Запуск любой из приведенных выше команд загружает скрипт и запускает его, скрипт клонирует репозиторий nvm в ~/.nvm

Теперь давайте проверим, успешно ли установлен nvm на вашем сервере, введя эту команду в терминале

$ nvm -v

если nvm успешно установлен на вашем сервере, пришло время установить NodeJS

$ nvm install <NodeJS Version>

например: 
$ nvm install v16.15.1

Затем активируйте NodeJS, который вы установили ранее

$ nvm use <NodeJS Version>

например: 
$ nvm use v16.15.1

Теперь NodeJS успешно установлен на вашем сервере, пожалуйста, проверьте это, введя команду ниже

$ node -v 
$ npm -v

Если у вас возникли проблемы при установке NVM, вы можете проверить документацию по nvm здесь.

Установка PM2

Начать работу с PM2 просто, он предлагается в виде простого и интуитивно понятного интерфейса командной строки, устанавливаемого через NPM.

Установите PM2 глобально

$ npm install pm2 --location=global

или же

$ npm install pm2 -g

Вы можете запустить приложение NodeJS напрямую с pm2, используя эту команду

$ pm2 start './server.js' --name=DevelopmentAPI

также можете увидеть, какие приложения работают на вашем сервере с помощью pm2

$ pm2 status
пример ответа, если есть приложение, работающее на pm2
пример ответа, если есть приложение, работающее на pm2

Но как остановить приложение NodeJS в pm2? Вы можете остановить приложение NodeJS в PM2 с помощью этой команды

$ pm2 stop <id|name|namespace|all>

Установка и настройка NGINX для балансировки нагрузки сервера NodeJS

Монтаж

Сначала установим NGINX на наш сервер

$ sudo apt install nginx

После завершения установки вы можете увидеть статус NGINX независимо от того, работает он или нет, с помощью этой команды

$ sudo systemctl status nginx.service

или же

$ sudo service nginx status

или вы можете проверить это, открыв страницу http://localhost/ в вашем браузере.

http://localhost
http://localhost

Настройте NGINX и укажите доменное имя на сервере NGINX.

Чтобы настроить и указать домен на сервер NGINX, нам нужно доменное имя и публичный IP-сервер. Например, я буду использовать свой домен test-api.anfa.my.id для этого руководства и общедоступный IP-адрес моего сервера (214.23.24.87 , ТОЛЬКО ДЛЯ ПРИМЕРА).

Сначала создайте файл с именем файла, которое является доменом, который вы хотите указать на сервер NGINX

$ sudo nano /etc/nginx/sites-available/test-api.anfa.my.id

а затем заполните этот код:

server {
    listen 80; 
    listen [::]:80;
    server_name test-api.anfa.my.id;
    
    index index.html index.htm;
    access_log /var/log/nginx/nodeapp.log;
    error_log  /var/log/nginx/nodeapp-error.log error;
    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:3000; # change the port according to your nodejs port
        proxy_redirect off;
    }
}

Чтобы сохранить файл, нажмите CTRL + X, затем нажмите Y и ENTER.

Затем создайте файл жесткой ссылки на ваше доменное имя с помощью этой команды

$ sudo ln /etc/nginx/sites-available/ test-api.anfa.my.id /etc/nginx/sites-enabled/ test-api.anfa.my.id

Как только вы закончили, проверьте конфигурацию NGINX, выполнив эту команду

$ sudo nginx -t

Если ошибок не обнаружено, вы можете перезапустить сервер NGINX прямо сейчас

$ sudo nginx -s reload

или же

$ sudo systemctl restart nginx.service

или же

$ sudo service nginx restart

Указание вашего доменного имени

Перейдите к своему провайдеру домена, найдите вкладку/меню DNS (если нет, вы можете установить его в Сloudflare).

Затем добавьте новый DNS, выберите тип A, заполните его именем субдомена, которое вы установили на своем сервере (пример: test-api.anfa.my.id), и заполните IPv4 общедоступным IP-адресом вашего сервера (пример: 214.23.24.87)

добавляем новый DNS в Сloudflare
добавляем новый DNS в Сloudflare

Теперь вы можете проверить свой домен, пропинговав его через терминал

$ ping test-api.anfa.my.id

В случае успеха и пропингованный IP-адрес совпадает с общедоступным IP-адресом вашего сервера, вы успешно указали свое доменное имя на свой сервер, теперь к вашему серверу можно получить доступ через общедоступный Интернет

Вывод

В этом руководстве мы рассмотрим установку скрипта bash nvm и проверку его работы. затем мы использовали nvm для установки NodeJS v16.15.1 и установили его в качестве версии NodeJS по умолчанию для нашей среды.

Затем продолжаем устанавливать PM2 (Process Manager 2) с NodeJS глобально, затем убеждаемся, что PM2 работает хорошо на вашем сервере или нет, затем как его запустить и как остановить работу сервера на PM2.

Далее приступайте к установке и настройке NGINX для нашего сервера балансировки нагрузки NodeJS и настройке доменного имени, чтобы оно указывало на наш сервер NGINX.

#NodeJS #Nginx
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу