Как установить Node.js на Windows Server 2012, 2016, 2019
Node.js — это среда выполнения jаvascript, которая позволяет запускать jаvascript-код вне браузера, в том числе на сервере. Она широко используется для создания веб-приложений и серверных приложений. В этой статье мы рассмотрим, как установить Node.js на Windows Server 2019.
Загрузка установщика Node.js
Первым шагом является загрузка установщика Node.js с официального сайта. Вы можете найти установщик на странице https://nodejs.org/en/download/. Скачайте установщик для Windows. В этой статье мы будем использовать версию 18.14.2.
Установка Node.js
После того как вы загрузили установщик Node.js, запустите его. Откроется мастер установки. Нажмите «Next», чтобы продолжить.
На следующей странице вы должны прочитать и принять лицензионное соглашение. Если вы согласны с условиями, выберите «I accept the terms in the License Agreement» и нажмите «Next».
Затем вы увидите страницу выбора компонентов. В этой статье мы будем устанавливать только Node.js. Оставьте все компоненты выбранными и нажмите «Next».
На следующей странице вы увидите диалог выбора установки всех необходимых компонентов. Поставьте галочку и нажмите «Next».
Далее нажмите «Install».
Установка может занять несколько минут. Когда установка завершится, нажмите «Finish».
После успешной установки пройдет установка дополнительного ПО.
Проверка установки
После установки Node.js вы можете проверить, что все работает, запустив командную строку и введя команду «node -v». Если все настроено правильно, вы должны увидеть версию Node.js, которую вы установили.
node -v
Установка дополнительных модулей
Node.js поставляется со множеством встроенных модулей, но для разработки приложений вам может понадобиться установить дополнительные модули. Для этого используйте менеджер пакетов npm, который поставляется с Node.js.
Чтобы установить модуль, откройте командную строку и введите команду «npm install «. Например, чтобы установить модуль для работы с базами данных MongoDB, нужно ввести команду «npm install express «.
npm install express
Настройка брандмауэра
После установки Node.js на Windows Server 2019 вам может понадобиться настроить брандмауэр, чтобы разрешить входящие соединения на порту, который использует ваше приложение на Node.js. По умолчанию Node.js использует порт 3000, но вы можете изменить его в своем приложении.
Для настройки брандмауэра откройте «Центр управления безопасностью Windows» и выберите «Дополнительные настройки брандмауэра Windows». Нажмите «Добавить правило» и выберите «Порт».
В следующем диалоговом окне выберите «TCP» и укажите номер порта, который использует ваше приложение на Node.js. Вы можете также указать диапазон портов, если ваше приложение использует несколько портов. Нажмите «Далее».
В следующем диалоговом окне выберите «Разрешить подключения» и нажмите «Далее».
В последнем диалоговом окне введите имя для правила и нажмите «Готово».
Либо воспользуйтесь простой командой для PowerShell:
netsh advfirewall firewall add rule name="port-3000" dir=in action=allow protocol=TCP localport=3000
Запуск приложения Node.js
После того как вы установили Node.js на Windows Server 2019, настроили брандмауэр и установили все необходимые модули, вы можете запустить свое приложение.
Для запуска приложения откройте командную строку, перейдите в каталог, где находится ваше приложение, и введите команду «node «.
Например, если ваше приложение находится в файле «js_sample.js», нужно ввести команду «node js_sample.js».
node js_sample.js
После запуска приложения оно будет доступно по адресу «http://localhost:3000» , если вы используете порт по умолчанию 3000.
Следуя приведенным выше инструкциям, вы сможете установить и настроить Node.js на своем сервере, и начать разработку приложений на этой платформе.
Свой Node.js хостинг на VPS
По ходу изучения Node.js я создал много маленьких проектов. В дальнейшем мне понадобилось развернуть некоторые из них на сервере, чтобы иметь возможность развивать их в дальнейшем. Существующие хостинги Appfog и Heroku имеют ряд серьезных ограничений на бесплатных аккаунтах. На Appfog’е можно запускать одновременно не больше 2-х приложений, и бесплатная регистрация у них уже отключена. На Heroku можно создать только 5 приложений (без базы данных) без подтверждения аккаунта привязкой банковской карты. Платные аккаунты стоят очень дорого для меня (я ведь не зарабатываю на этих маленьких проектах): $20 долларов на Appfog, а heroku еще дороже. Коллеги порекомендовали попробовать хостинг на Digital Ocean — виртуальный сервер за $5 доларов в месяц, на котором можно легко настроить собственный хостинг node.js-проектов.
О том, как организовать такой хостинг, и будет идти речь в этой статье. Если по ходу руководства у вас возникнут проблемы, поищите их решение в конце статьи.
Создаем VPS
1. Регистрация на DigitalOcean
Первым делом регистрируемся на сайте DigitalOcean. Здесь мы купим VPS — виртуальный сервер. После удачной регистрации и входа в свою админку жмем на большую зеленую кнопку «Create» и нам предложат активировать свой аккаунт, внеся $5 долларов. Ниже на странице есть место для указания счастливого купона на $10, вводите OMGSSD10 или поищите свежий купон. Так как моя банковская карточка не подошла хостеру, я оплатил пейпалом и у меня на счету оказалось $15. Этого должно хватить на 3 месяца.
2. Создаем SSH-ключ
Доступ к удаленным серверам обычно делается по ssh. Это такая технология защищенных соединений. Зайти в нашу будущую VPS можно по паролю или по SSH-ключу. Я настоятельно рекомендую второй вариант, не придется все время вводить пароль. Также, SSH-ключ все равно нужно будет указать при создании нашего нового «дроплета» (словом «droplet» DigitalOcean называет виртуальный сервер).
Выполните следующие две команды в терминале, чтобы сгенерировать ssh-ключ:
$ cd ~/.ssh $ ssh-keygen -t rsa -C "email@example.com"
И тут нас просят ввести имя файла ключа. Рекомендую использовать что-нибудь вроде id_rsa_digitalocean_dropletname , где имя дроплета — это либо имя домена, на который мы привяжем наш сервер, либо просто какое-нибудь осмысленное название. Парафразу можно оставить пустой, и так сойдет.
После этого будет создано два файла: ssh-ключ и public-ключ. Скопируем публичный ключ в буфер обмена модным способом:
$ cat ~/.ssh/id_rsa_digitalocean_dropletname.pub | pbcopy
Теперь зайдем в админку в digitaloceans в раздел SSH-keys и создадим там новый ключ, вставив его из буфера обмена.
3. Создаем дроплет
- В качестве hostname укажите доменное имя или что-нибудь осмысленное, это название роли не играет
- Размер выбирайте самый маленький, его потом можно будет увеличить из терминала
- Регион любой, я выбрал Амстердам
- Образ выберите на вкладке Applications, c названием «Dokku v0.2.3 on Ubuntu. » или похожим
- Укажите SSH-ключ, который мы создали на предыдущем шаге
Выбранный образ помимо операционной системы Ubuntu 14.04 содержит самое главное: Dokku. Это готовая система для хостинга node.js-проектов, очень похожая на Heroku. Использование образа с предустановленным Dokku избавит нас от необходимости устанавливать и настраивать систему для хостинга Node.js.
4. Настройка Дроплета и DNS
Теперь нужно настроить новосозданный сервер. Зайдите в браузере по IP-адресу дроплета и вы увидете экран настройки. Если такой страницы нет, смотрите что делать в конце статьи.
Здесь вы должны убедится, что поле «Public Key» заполнено. Если нет — укажите свой public key из недавно сгенерированного ключа. Однако практика показала, что лучше вообще удалить такой дроплет и создать новый, правильно указав SSH-ключ.
Если у вас нет доменного имени, то оставьте все, как есть, жмите «Finish setup» и переходите к следующему пункту. Ваше приложение будет доступно примерно так: «19.19.197.19:46667», по IP адресу и номеру порта. Если вас это не устраивает — срочно купите доменное имя. В любом случае, настроить доменное имя можно будет позже, о чем я расскажу в конце.
Если вы укажете доменное имя, у вас будет возможность настроить доступ к приложениям через поддомены. Например, если ваше доменное имя mydomain.com , тогда ваше приложение будет доступно по адресу app.mydomain.com . Также есть возможность привязать приложение на главный домен, но об это я в данной статье не расскажу.
Укажите в поле Hostname ваше доменное имя и поставьте галочку «Use virtualhost naming for apps». Теперь идите в панель управления вашим доменным именем и впишите две новые настройки примерно так:
apps.mydomain.com. IN A [Droplet IP address]
*.apps.mydomain.com. IN A [Droplet IP address]
mydomain.com. IN A [Droplet IP address]
*.mydomain.com. IN A [Droplet IP address]
Точный синтаксис уточните у себя в админке доменного имени или у домен-провайдера.
Теперь возвращайтесь на страницу настройки дроплета и жмите «Finish setup».
5. Настраиваем использование SSH
Давайте попробуем соединиться с нашим новым сервером. Чтобы получить доступ дроплету через SSH-ключ, нужно еще одно маленькое действие. Откройте терминал и передите в папку с ssh-ключами:
$ cd ~/.ssh/
Если у вас еще нет файла «config» в этой папке (проверка — $ ls ), то его необходимо создать:
$ touch config
Теперь открываем config( $ open config ) и записываем в него следующие данные:
Host YOUR.DROPLET.IP.ADDRESS IdentityFile ~/.ssh/id_rsa_digitalocean_dropletname
Где в первой строчке IP адрес или доменное имя, на второй строчке — имя созданного ssh-ключа для этого дроплета.
$ ssh root@YOUR.DROPLET.IP.ADDRESS
Где после «@» надо указать или доменное имя, или IP.
Если вы пропустили создание SSH-ключа, войти можно по паролю, который пришел к вам на почту. Для этого выполните ту же команду:
$ ssh root@YOUR.DROPLET.IP.ADDRESS
и на вопрос о продолжении соединения напишите «yes». После этого введите пароль.
Если вы увидели приветственный экран, значит все хорошо. Закроем соединение командой exit и перейдем к следующему пункту.
Деплоим приложение
Сервер готов, теперь пришла очередь развернуть тестовое приложение и проверить его работу.
1. Подготавливаем проект
Возьмите простой проект, типа Hello, world, без mongodb и прочего. Проверьте, что в проекте есть самое главное: «package.json», «Procfile» и какой-нибудь «app.js». «Package.json» должен выглядеть примерно так:
< "name": "dokku-demo-application", "version": "1.0.0", "engines": < "node": ">=0.10.*", "npm": ">=1.3" >, "dependencies": < "express": "~3.0" >>
Содержание файла package.json важно, так как по нему dokku будет устанавливать модули для приложения. А Procfile должен выглядеть так:
web: node server.js
Инициализируем в папке проекта репозиторий (если его не было), добавляем все файлы и коммитим:
$ git init && git add -A && git commit -m "Initial commit"
Теперь наш проект готов к разворачиванию на сервере.
2. Заливаем и запускаем проект
Деплоить приложение будем с помощью команды git push . И для этого добавим ссылку на удаленный репозиторий нашего дроплета:
$ git remote add dokku dokku@mydomain.com:application_name
Если у нас было доменное имя для дроплета, то пишем его после «dokku@», иначе — указываем IP. После двоеточия мы указываем имя приложения. Этот индификатор будет использоваться внутри dokku.
Теперь вызываем команду push :
$ git push dokku master
И начинается загрузка приложения, установка модулей. В конце на экране покажется url, по которому можно запустить проект. Это будет ссылка вида 192.88.67.168:46567 или app1.mydomain.com, в зависимости от настроек dokku.
По идее проект должен быть запущен после этого. Но если нет, то заходим в по ssh в наш дроплет и выполняем две команды
$ cd /home/dokku/YOUR-APP-NAME $ dokku run YOUR-APP-NAME node app.js
Запускаем в браузере ссылку, полученную ранее, и радуемся!
Проблемы и их устранение
Я сам разбирался с настройкой такого хостинга более суток, и набил несколько шишек. И чтобы вы могли съэкономить свое время, привожу здесь несколько возможных проблем и пути их решения.
1. Мою банковскую карточку не приняли для оплаты
Они такие, да. Даже Visa Classic им не нравится. Оплатите через PayPal, это не трудно.
2. Создал дроплет, но по IP адресу нет страницы настройки dokku
- указать образ с Dokku
- нажмите кнопку «Rebuild from Image».
3. Не могу получить доступ к дроплету ни по паролю, ни по SSH
- Наверное, вы как-то пропустили шаг настройки dokku, или dokky создался не правильно.
- Проверьте, если доступна страница настройки dokku по IP адресу дроплета, то вернитесь к шагу 4 создания VPS.
- Если страницы настроек нет, тогда попробуйте сбросить пароль и повторить попытку доступа через терминал. Если даже в этом случае доступ по паролю будет неудачным, тогда переустановите дроплет, как описано в предыдущем пункте.
4. Я не знаю пароля от дроплета
Если у вас нет пароля, зайдите на страницу управления дроплетом, вкладка «Access» и сделайте reset пароля. Тогда на почту придет новый пароль.
5. Проект не запускается по указанной ссылке
Если настройки dokku верны, такая ситуация возможна, если приложение запустилось с ошибкой и было закрыто. Зайтиде по ssh в дроплет и проверьте логи:
$ dokku logs
Возможно, ошибка будет понятна. Или же вы забыли запустить ваш проект после push’а:
$ cd /home/dokku/YOUR-APP-NAME $ dokku run YOUR-APP-NAME node app.js
6. Я пропустил создание SSH, и теперь хочу сделать авторизацию по SSH-ключу
Я пытался создать новый дроплет без указания ssh-ключа на странице создания дроплета, но на странице настроек dokku все равно просят ввести паблик-ключ. После этого я принял некоторые действия, но все равно зайти по ssh-ключу у меня не вышло, только пароль. Так что я не знаю, как лучше действовать в данной ситуации. Возможно, ошибка происходила при команде копирования ssh ключа в дроплет. Гуглите. В крайнем случае создайте новый дроплет с самого начала, по уму, как в этом руководстве. Пример поиска.
7. Как добавить доменное имя к уже существующему дроплету
Это делается совсем не трудно, всего в несколько шагов. В настройках DNS вашего доменного имени указать настройки:
apps.mydomain.com. IN A [Droplet IP address]
*.apps.mydomain.com. IN A [Droplet IP address]
В дроплете зайти в папку dokku и открыть для редактирования HOSTNAME:
$ cd /home/dokku/ $ vim HOSTNAME
Нажать клавишу «i» и записать в файле «HOSTNAME» доменное имя вместо IP адреса; затем нажать Esc , кнопки :wq и Enter . Ура! Мы только что успешно использовали легендарный Vim!
Чтобы проекты запускались на поддоменах, нужно создать файл VHOST :
$ touch VHOST
И записать в файле доменное имя таким же способом, как это было в предыдущем пункте. В противном случае проекты будут доступны через порт. Теперь надо перезалить проект, а перед этим удалить его из dokku:
$ dokku delete app_name
Удалить в репозитории предыдущий remote с IP-адресом в названии:
$ git remote remove dokku
И добавить новый remote под старым именем:
$ git remote add dokku dokku@apps.mydomain.com:app_name
Настраиваем SSH-ключ на новый хостинг, дописывая в ~/.ssh/config новые строчки:
Host YOUR.DROPLET.IP.ADDRESS IdentityFile ~/.ssh/id_rsa_digitalocean_dropletname
Смело пушаем проект:
$ git push dokku master
Теперь проекты будут доступны на поддоменах.
Всем спасибо за внимание, хороших выходных!
Node.js
Популярная платформа Node.js вместе с менеджером процессов PM2 и веб-сервером Nginx для удобного запуска ваших проектов.
Создать VPS
Node.js – это популярная, легкая в освоении и гибкая платформа для создания приложений на JavaScript. Node.js представляет собой среду выполнения на базе движка V8 проекта Chrome. Благодаря эффективной реализации, огромному количеству библиотек и развитому сообществу, Node.js превратилась в одну из лидирующих платформ для разработки.
Node.js от Beget – это готовая к работе сборка для разработки и хостинга вашего проекта для Node.js. Для удобства администрирования и масштабирования уже сконфигурирован менеджер процессов PM2 и веб-сервер Nginx.
Состав приложения
- Ubuntu 22.04.01
- Node.js 18.14
- nginx 1.18.0
- PM2 5.2.2
Установка и работа с Node.js
При создании сервера, помимо стандартных параметров, вам будет предложено:
- Выбрать доменное имя, по которому будет доступно ваше первое приложение на Node.js. Если у вас еще нет доменного имени, вы можете его зарегистрировать или воспользоваться бесплатным техническим доменом в зоне .beget.app. На выбранное доменное имя будет автоматически установлен SSL-сертификат.
После установки и развертывания пакета Node.js вы можете начать работу.
Работа с Node.js и PM2
Сразу после установки для демонстрации работоспособности уже создано первое приложение, которое отдает в браузер текст «Hello, World!». Приложение доступно по указанному вами при установке доменному имени: https://ваш-домен
Можно убедиться в работоспособности сервера с помощью браузера или консольной команды:
$ curl https://mydomain.beget.app Hello, World!
Для замены тестового приложения своим собственным приложением вам необходимо:
- Подключиться к вашему серверу по протоколу SSH или SFTP.
- Остановить работу тестового приложения командой sudo -u nodejs pm2 stop hello-world .
- Перейти в директорию /var/www/html .
- Загрузить файлы вашего приложения.
- Установить зависимости (подробности установки зависимостей – в ответах на вопросы ниже).
- Запустить приложение командой sudo -u nodejs pm2 start /var/www/html/ .
- Если ваше приложение использует не 3000 порт для работы, то измените порт в конфигурационном файле Nginx (подробности изменения порта – в ответах на вопросы ниже).
- Удалить тестовое приложение командой sudo -u nodejs pm2 delete hello-world .
- Сохранить конфигурацию сервисов PM2 для автоматического запуска приложения командой sudo -u nodejs pm2 save
Ответы на часто задаваемые вопросы
Как установить зависимости приложения?
Node.js работает из-под пользователя nodejs .
Для работы с Node.js или npm необходимо зайти под пользователем nodejs командой su — nodejs .
После перехода на пользователя nodejs можно устанавливать пакеты с помощью npm. Не забудьте перейти в директорию с приложением.
Как изменить порт приложения в конфигурации nginx?
- Подключитесь к вашему серверу по протоколу ssh или SFTP
- Перейдите в директорию /etc/nginx/sites-available .
- Откройте файл nodejs.conf с помощью любого удобного текстового редактора.
- В строке proxy_pass http://localhost:3000; замените 3000 порт на необходимый.
- Сохраните изменения и обновите конфигурацию Nginx командой nginx -s reload
Node.js
Как установить на VPS nodejs хостинг
Node.js – особая среда выполнения JavaScript, которая была создана при помощи движка под названием JavaScript V8 от компании Google.
Посредством ее можно легко создавать разнообразные инструменты для интернета, веб-серверов средствами JavaScript. Node применяет цикл событий (так называемый event loop). Это означает, что все команды здесь выполняются асинхронно.
Эта статья вам расскажет, как установить Node на VPS под операционной системой Ubuntu и легко управлять платформой Node js Ubuntu.
Nodejs хостинг и ОС Ubuntu
Что потребуется
Перед тем как начать действовать, обязательно проверьте наличие:
Доступа-SSH на VPS Украина, который запущен под Ubuntu 14.04.
Установка Node Ubuntu
Nodejs хостинг уже есть в репозиториях ОС Ubuntu по умолчанию. Тем не менее версия устарела, потому вам желательно использовать для установки личный архив пакетов (или PPA) из NodeSource.
Вначале скачайте, добавьте PPA в вашу конфигурацию посредством команды:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash —
Данная команда установит наиболее актуальную стабильную версию Node v6. В случае если вам требуется седьмая версия, либо любая иная, то просто замените setup_6.x на необходимую версию. Для Node v7 команда выглядеть будет таким образом:
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash —
В случае если вы сразу получили ошибку о том, что curl не установлен, то можете его легко установить запустив sudo apt-get install curl.
Теперь можно начать установку платформы Node js Ubuntu точно также, как вы привычно устанавливаете остальные пакеты на ОС Ubuntu:
sudo apt-get install -y nodejs
Поскольку применяется флаг ‘-y’, то вам не потребуется подтверждать установку.Когда Node установлен, можно проверить установленную версию, просто запустив для этого:
Итоги выполнения данной команды:
Все, вы удачно установили Node Ubuntu на VPS.
Node идет в поставке специальным менеджером пакетов (NPM), который позволяет устанавливать и управлять всеми пакетами Node.
Для установки пакета просто запустите:
sudo npm install name_of_the_package
Установка менеджера версий NVM (по желанию)
В Node есть специальный менеджер версий (NVM). Вы можете с легкостью установить несколько версий платформы Node и с легкостью ими управлять.
Для установки этого менеджера вам сначала надо установить пакет:
sudo apt-get install build-essential libssl-dev -y
После этого уже можно смело устанавливать менеджер версий NVM:
curl https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
v0.32.1 – версия NVM
Вы получите уведомление, подобное следующему:
Теперь можно снова открыть терминал, либо запустить упомянутые команды, применяя менеджер версий NVM. Для того, чтобы сразу убедиться, что NVM установлен правильно просто наберите:
В случае если вы получите какой-то номер версии, то это означает, что менеджер версий установлен верно. Теперь вы можете использовать NVM для проверки доступных версий Node:
Итоги выполнения данной команды:
Для инсталлирования версии v7.1.0 платформы Node просто запустите:
nvm install v7.1.0
Для применения недавно установленной версии Node просто запустите:
Применяя тот же метод теперь можно устанавливать и управлять остальными версиями Node точно также. Можно проверить локально установленную версию посредством следующей специальной команды:
Итоги выполнения данной команды:
Текущая версия, как видно, по умолчанию v7.1.0, потому вместо обычного набора nvm use v7.1.0 можно всегда использовать:
nvm use default
Вы также можете изменить свою версию по умолчанию:
nvm alias default v6.9.1
Вывод
В этой статье вы научились устанавливать Node Ubuntu и управлять платформой Node на вашем сервере VPS под операционной системой Ubuntu.
Надеемся, что этот материал вам очень поможет.