Установка node js ubuntu 18.04



This guide uses two Ubuntu 14.04 servers with private networking (in the same datacenter). We will refer to them by the following names:

  • app: The server where we will install Node.js runtime, your Node.js application, and PM2
  • web: The server where we will install the Nginx web server, which will act as a reverse proxy to your application. Users will access this server’s public IP address to get to your Node.js application.

It is possible to use a single server for this tutorial, but you will have to make a few changes along the way. Simply use the localhost IP address, i.e. , wherever the app server’s private IP address is used.

Here is a diagram of what your setup will be after following this tutorial:

Before you begin this guide, you should have a regular, non-root user with privileges configured on both of your servers–this is the user that you should log in to your servers as. You can learn how to configure a regular user account by following steps 1-4 in our initial server setup guide for Ubuntu 14.04.

If you want to be able to access your web server via a domain name, instead of its public IP address, purchase a domain name then follow these tutorials:

  • How To Set Up a Host Name with DigitalOcean
  • How to Point to DigitalOcean Nameservers From Common Domain Registrars

Let’s get started by installing the Node.js runtime on the app server.

Give Safe User Permission To Use Port 80

Remember, we do NOT want to run your applications as the root user, but there is a hitch: your safe user does not have permission to use the default HTTP port (80). You goal is to be able to publish a website that visitors can use by navigating to an easy to use URL like http://mysite.com.

Unfortunately, unless you sign on as root, you’ll normally have to use a URL like http://mysite.com:3000 — notice the port number.

A lot of people get stuck here, but the solution is easy. There a few options but this is the one I like. Type the following commands:

Now, when you tell a Node application that you want it to run on port 80, it will not complain.


  • Tutorial

    In this tutorial, we will set up a NodeJS server with SailsJS as the framework to manage our code. We will use DustJS for isomorphic templates used on both the client and the server.

  • Tutorial
    How To Deploy a DocPad Application on Ubuntu 14.04

    In this tutorial, we are going to learn how to deploy an application made with (https://docpad.org) to the standard 64-bit Ubuntu 14.04 image on DigitalOcean. DocPad is a Node.js-powered static site generator that can be used alone or alongside a Node.js app to drive your site’s content.

    After reading this tutorial, you should be able to serve DocPad on port 80 as a non-root user, and make sure that if your DocPad app ever crashes, it will restart automatically.

  • Tutorial

    In this tutorial, you will use Node.JS, Puppeteer, Docker, and Kubernetes to build a highly scalable scraper that can simultaneously extract data from multiple pages. You will test your scraper on the dummy bookstore, books.toscrape.com, where you will scrape data from 400 pages in ~30 seconds.

  • Tutorial
    How To Build a REST API with Prisma and PostgreSQL

    Prisma is an open source database toolkit. In this tutorial, you will build a REST API for a small blogging application in TypeScript using Prisma and a PostgreSQL database. At the end of the tutorial, you will have a web server running locally on your machine that can respond to various HTTP requests and read and write data in the database.

Set Up Nginx as a Reverse Proxy Server

Now that your application is running, and listening on localhost, you need to set up a way for your users to access it. We will set up the Nginx web server as a reverse proxy for this purpose.

In the prerequisite tutorial, we set up our Nginx configuration in the file. Open the file for editing:

Within the block you should have an existing block. Replace the contents of that block with the following configuration. If your application is set to listen on a different port, update the highlighted portion to the correct port number.


This configures the server to respond to requests at its root. Assuming our server is available at , accessing via a web browser would send the request to , listening on port at localhost.

You can add additional blocks to the same server block to provide access to other applications on the same server. For example, if you were also running another Node.js application on port , you could add this location block to allow access to it via :

/etc/nginx/sites-available/default — Optional

Once you are done adding the location blocks for your applications, save and exit.

Make sure you didn’t introduce any syntax errors by typing:

Next, restart Nginx:

Assuming that your Node.js application is running, and your application and Nginx configurations are correct, you should now be able to access your application via the Nginx reverse proxy. Try it out by accessing your server’s URL (its public IP address or domain name).

Какие операционные системы поддерживает Node Version Manager ?

NVM был первоначально разработанный для Linux и OS X, но также существует проект NVM Windows https://github.com/coreybutler/nvm-window. Хотя существуют незначительные отличия, базовые команды для установки, просмотра и переключения версий Node.js идентичны, кроме случаев описанных ниже.

Установка NVM на OS X и Linux

Сначала, удостоверьтесь в том что утилита совместима с вашей версией операционной системы. Также технически вам не нужно удалять уже установленый Node, но лучше сделать это, кроме того, нужно удалить любые прежнюю версию npm.C++ компилятор необходим для поддержки версий предшествующий 0.8.6. Даже если вы обычно работаете только с LTS или более современными релизами, вы все де можете установить компилятор C++. Если вы у вас OS X, ваш лучший выбор это Xcode. Чтобы установить его выполните следующую команду:

Если вы используете Linux, выполните следующую команду, чтобы установить build-essential package вместе с Advanced Package Tool:

После этого, вы можете установить Node Version Manager используя cURL или Wget. Для cURL выполните следующую команду:

Для Wget выполните следующую команду:

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

Перед установкой узнайте последнюю достпную версия NVM https://github.com/creationix/nvm/releases. На данный момент последняя версия v0.33.11. команды выше клонируют репозиторий в ~/.nvm и применят изменения для вашего bash профиля, так что вы сможете иметь доступ к Node Version Manager где-угодно в вашем терминале.

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

Перед тем как вы начнете, удалите существующую версию Node.js, чтобы избежать потенциальных проблем во время установки. Дальше скачайте с Github nvm-setup.zip https://github.com/coreybutler/nvm-windows/releases Послее того как откорете его просто следуйте инструкциям для заверешнния установки.

Create a Safe Account to Run Your Code

When you first set up your DigitalOcean droplet, you received instructions to log on using the root account. The instructions looked something like this:

To login to your droplet, you will need to open a terminal window and copy and paste the following string:

Please note, ‘192.241.xxx.xxx’ will be different for you. Simply follow the instructions you received from DigitalOcean when your virtual server was setup and log on using ssh.

As most of us understand, if you run your code using the root account, and if a hostile party compromises the code, that party could get total control of your VPS.

To avoid this, let’s setup a safe account that can still perform root operations if we supply the appropriate password. For the purposes of this tutorial, let’s call our safe user “safeuser»– you can name it whatever you like. For now, log on as the root user and follow these steps:

Create the user with a folder in /home/safeuser/:

Create a password for safeuser — you will be asked to type it twice after you enter the following command:

Give the safe user permission to use root level commands:

Шаг 4 — Настройка Nginx в качестве обратного прокси-сервера

Ваше приложение запущено и прослушивает , но вам нужно дать пользователям возможность доступа к нему. Для этой цели мы настроим веб-сервер Nginx в качестве обратного прокси-сервера.

В предварительных обучающих модулях вы настроили конфигурацию Nginx в файле . Откройте этот файл для редактирования:

В блоке должен содержаться блок . Замените содержимое этого блока следующей конфигурацией. Если ваше приложение настроено для прослушивания другого порта, измените номер порта в выделенной части на подходящий:


Так сервер настраивается для ответа на запросы root. Если наш сервер доступен по адресу , при попытке доступа к через браузер будет отправлен запрос с прослушиванием порта хоста .

Вы можете добавить в этот же серверный блок дополнительные блоки , чтобы предоставить другим приложениям доступ к этому же серверу. Например, если вы используете другое приложение Node.js на порту , вы сможете добавить следующий блок location, чтобы разрешить доступ к нему через :

/etc/nginx/sites-available/example.com — Optional

Завершив добавление блоков location для ваших приложений, сохраните файл и закройте редактор.

Убедитесь в отсутствии ошибок синтаксиса с помощью следующей команды:

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

Если ваше приложение Node.js запущено и конфигурации вашего приложения и Nginx настроены правильно, вы должны иметь возможность доступа к вашему приложению через обратный прокси-сервер Nginx. Попробуйте открыть URL вашего сервера (публичный IP-адрес или доменное имя).

Step 2 — Creating a Node.js Application

Let’s write a Hello World application that returns “Hello World” to any HTTP requests. This sample application will help you get Node.js set up. You can replace it with your own application — just make sure that you modify your application to listen on the appropriate IP addresses and ports.

First, let’s create a sample application called :

Insert the following code into the file:


Save the file and exit the editor.

This Node.js application listens on the specified address () and port (), and returns “Hello World!” with a HTTP success code. Since we’re listening on , remote clients won’t be able to connect to our application.

To test your application, type:

You will receive the following output:

Note: Running a Node.js application in this manner will block additional commands until the application is killed by pressing .

To test the application, open another terminal session on your server, and connect to with :

If you get the following output, the application is working properly and listening on the correct address and port:

If you do not get the expected output, make sure that your Node.js application is running and configured to listen on the proper address and port.

Once you’re sure it’s working, kill the application (if you haven’t already) by pressing .

Предварительные требования

Этот обучающий модуль предполагает, что у вас имеется следующее:

  • Сервер Ubuntu 20.04, настроенный в соответствии с указаниями обучающего модуля Начальная настройка сервера Ubuntu 20.04. В системе должен быть задан пользователь без привилегий root с привилегиями sudo, а также должен быть включен брандмауэр.
  • Доменное имя, указывающее на публичный IP-адрес вашего сервера. В этом обучающем модуле мы будем использовать доменное имя example.com.
  • Веб-сервер Nginx, установленный в соответствии с указаниями обучающего модуля Установка Nginx в Ubuntu 20.04.
  • Конфигурация Nginx с SSL с использованием сертификатом Let’s Encrypt. Статья Защита веб-сервера Nginx сертификатом Let’s Encrypt в Ubuntu 20.04 поможет вам выполнить необходимые настройки.

Если предварительные требования выполнены, у вас должен быть сервер, обслуживающий используемую по умолчанию страницу назначения вашего домена по адресу .


  • Tutorial

    Django — это мощная веб-система, помогающая создать приложение или сайт Python с нуля. Django включает упрощенный сервер разработки для локального тестирования кода, однако для серьезных производственных задач требуется более защищенный и мощный веб-сервер. В этом руководстве…

  • Tutorial

    Автор выбрал фонд Electronic Frontier Foundation для получения пожертвований в рамках программы Write for DOnations. Cloudflare — это…

  • Tutorial

    Автор выбрал фонд Electronic Frontier Foundation для получения пожертвований в рамках программы Write for DOnations. Cloudflare — это…

  • Tutorial
    Настройка приложения Node.js для работы в среде Ubuntu 20.04

    Node.js — среда исполнения JavaScript с открытым исходным кодом, предназначенная для построения серверных и сетевых приложений. Данная платформа работает в операционных системах Linux, macOS, FreeBSD и Windows. Хотя вы можете запускать приложения Node.js…

Что такое Node.js

На сегодня Node.js является одной из самых популярных веб-технологий. Этой платформой пользуются многие разработчики, поскольку с её помощью можно создавать действительно функциональные веб-приложения. Её также используют некоторые крупные компании. Всё это свидетельствует о потенциале технологии.

Node.js — среда исполнения на стороне сервера, позволяющая запускать JavaScript без клиента. Это кроссплатформенная программа с открытым исходным кодом, что делает её идеальным решением для различных проектов — как для образовательных, так и рабочих.

На момент написания статьи последней стабильной версией Node.js была 11.10.0, но для большинства пользователей рекомендовалась версия с долгосрочной поддержкой 10.15.1. Вы можете использовать любую удобную для вас версию, в том числе и последнюю на момент прочтения.

Есть несколько способов установки Node.js и NPM в Ubuntu, здесь мы покажем два самых простых и эффективных.

Важно: Для того, чтобы начать, у вас должен быть доступ к серверу, а также возможность выполнять команды с помощью sudo. Cмотрите руководство о том, как получить доступ к вашему VPS через ssh

Также обратите внимание, что вам не нужно использовать оба метода. Выберите тот, который вам больше всего подходит

Как использовать NVM

Есть несколько важных вещей которые нужно знать чтобы использовать NVM эффективно, ниже они будут описаны и будут приведены примеры как делать определенные задачи.

Установка разных версий Node.js

Менеджер версий делает установку разных версий Node.js очень простой с помощью одной команды. Просто запустите команду install и передайте ей параметром необходимую версию. Например, если вы хотите установить Node.js версии v6.5.0, выполните следующую команду:

Так как утилита следует SemVer, вы можете устанавливать патчи командой install с аргументом номера патча. Для получения списка доступных версий в Linux и OS X, выполните:

Если вы используете Windows, выполните следующую команду:

Если вам нужно удалить екземпляр Node, просто выполните nvm uninstall c нужным номером версии.

Глобальные npm пакеты

Стоит заметить то что глобально установленный npm пакеты не разделяются между разными версиями Node.js, потому что они могут причинить проблемы несовместимости. Поэтому, Node Version Manager одновременно устанавливает совместимую версию npm каждый раз когда вы устанавливаете какую то версию Node.js. Так как каждый экземпляр Node имеет собственную версию npm, вы можете запустить npm -v что-бы проверить какая версия сейчас используется. Также не нужно иметь sudo права при установке глобальных пакетов. Если вы хотите переустановить глобальные npm пакеты для определенной версии Node.js или при ее установке, сделайте так:

Команда выше устанавливает Node 6.5.0 и необходимую npm, потом переустанавливает все установленные пакеты в версии 4.2


Что облегчить процесс смены версий, NVM позволяет использовать псевдонимы для определения версий без указания номера. Примеры стандартных алиасов:— node: устанавливает самую последнюю стабильную версию Node.js— unstable: устанавливает самую последнюю стабильную версию Node.js— iojs: устанавливает самую последнюю стабильную версию io.js

Для установки последней стабильной версии Node.js выполните следующую команду

Также существует алиас по умолчанию. Для установки версии по умолчанию используйте такую команду

Кроме того, вы можете создавать собственные алиасы:

Для удаления алиаса, выполните команду unalias:

Переключения между версиями Node.js

Каждый раз как вы устанавливаете новую версию Node.js, она будет автоматически выбираться для использования. Для переключения между версиями используется команда, nvm use которая работает почти также как и команда install. Например если вы хотите переключиться на последнюю стабильную версию, выполните команду

Для получения списка всех установленных версий Node, используется команда nvm ls:

Активная версия будет помечена зеленым цветом и стрелочкой, также текущую версию можно получить с помощью команды:

Дополнительные команды

— Существует несколько дополнительных команд, которые могут вам когда-нибудь понадобиться. Чтобы запустить команду для установленной версии без переключений переменных node, используйте такой формат

— чтобы задать определенную версию при запуске команда в саб-терминале, выполните такую команду

— если вы хотите узнать путь к исполняемым файлам Node.js для какой-то версии Node, используйте следующий формат

— Также вы можете назначить желаемую версию Node.js для ваших проектов, создав .nvmrc файлы в репозитории проектов. Существует плагин avn https://github.com/wbyoung/avn, который позволяет автоматичски переключпаться между версиями при смене директорий.

Install Node.js

We will install the latest LTS release of Node.js, on the app server.

On the app server, let’s update the apt-get package lists with this command:

Then use to install the package, which depends on:

Go to the Node.js Downloads page and find the Linux Binaries (.tar.xz) download link. Right-click it, and copy its link address to your clipboard. At the time of this writing, the latest LTS release is 4.2.3. If you prefer to install the latest stable release of Node.js, go to the appropriate page and copy that link.

Change to your home directory and download the Node.js source with . Paste the download link in place of the highlighted part:

Now extract the tar archive you just downloaded into the directory with these commands:

If you want to delete the Node.js archive that you downloaded, since we no longer need it, change to your home directory and use this command:

Next, we’ll configure the global of , where will create symbolic links to installed Node packages, to somewhere that it’s in your default path. We’ll set it to with this command:

Now we’re ready to move the and binaries to our installation location. We’ll move it into with this command:

At this point, you may want to make the owner of the files:

Lastly, let’s create symbolic links of the and binaries in your default path. We’ll put the links in with these commands:

Verify that Node is installed by checking its version with this command:

The Node.js runtime is now installed, and ready to run an application! Let’s write a Node.js application.


Let’s first cover installation for Windows, macOS and Linux.


First, we need to do a little preparation:

  • uninstall any existing versions of Node.js
  • delete any existing Node.js installation directories (such as )
  • delete the existing npm install location (such as )

After this, download and run the latest stable installer and you should be good to go!


Unlike Windows, removing previous Node and npm installations in macOS and Linux is optional. If this is something you want to do, there are plenty of good resources available online. For example, here’s how to remove Node on macOS and on Linux. And here’s how you can remove any previous npm installation you might have.

You can install nvm using cURL or Wget. On your terminal, run the following:

With cURL:

Or with Wget:

Note that the version number () will change as the project develops, so it’s worth checking the to find the most recent version.

This will clone the nvm repository to and will make the required changes to your bash profile, so that is available from anywhere in your terminal.

And that’s it! Reload (or restart) your terminal and nvm is ready to be used.

Вариант 2 — Установка Node.js с помощью Apt через архив NodeSource PPA

Для установки другой версии Node.js вы можете использовать архив PPA (архив персональных пакетов), обслуживаемый NodeSource. Через PPA можно установить другие версии Node.js, кроме доступных в официальных репозиториях Ubuntu. На момент составления этого обучающего модуля доступны версии Node.js v10, v12, v13 и v14.

Вначале установим PPA для получения доступа к его пакетам. Используйте в домашнем каталоге команду для получения скрипта установки предпочитаемой версии. Замените предпочитаемым номером версии (если он отличается).

Дополнительную информацию о доступных версиях можно найти в документации по NodeSource.

Просмотрите содержимое загруженного скрипта в (или другом предпочитаемом текстовом редакторе):

Убедившись в безопасности запуска скрипта, закройте редактор и запустите скрипт с привилегиями :

Архив PPA будет добавлен в вашу конфигурацию, и кэш локальных пакетов автоматически обновится. Теперь вы можете установить пакет Node.js, как описывалось в предыдущем разделе:

Убедитесь в установке новой версии, запустив с флагом версии :

Пакет NodeSource содержит двоичный код и , так что не нужно устанавливать отдельно.

Вы успешно установили Node.js и , используя и архив NodeSource PPA. В следующем разделе мы покажем, как использовать диспетчер версий Node Version Manager для установки нескольких версий Node.js и управления ими.


This guide assumes that you have the following:

  • An Ubuntu 20.04 server setup, as described in the initial server setup guide for Ubuntu 20.04. You should have a non-root user with sudo privileges and an active firewall.
  • A domain name pointed at your server’s public IP. This tutorial will use the domain name example.com throughout.
  • Nginx installed, as covered in How To Install Nginx on Ubuntu 20.04.
  • Nginx configured with SSL using Let’s Encrypt certificates. How To Secure Nginx with Let’s Encrypt on Ubuntu 20.04 will walk you through the process.

When you’ve completed the prerequisites, you will have a server serving your domain’s default placeholder page at .

Установка при помощи NVM

Альтернативой установке Node.js через является использование специального инструмента , что расшифровывается как “Node.js version manager” (менеджер версий Node.js).

Используя , вы можете установить несколько отдельных (изолированных) версий Node.js, что позволит вам проще контролировать вашу среду разработки. Это даст вам доступ в новым версиям Node.js в случае необходимости, но при этом позволит собирать приложения для предыдущих релизов Node.js, которые ваше приложение может использовать в виде зависимостей.

Для начала, нам необходимо установить пакеты из репозиториев Ubuntu, которые позволят собирать пакеты из исходников. NVM будет использовать это для сборки необходимых компонентов:

После установки требуемых пакетов, можно загрузить установочный скрипт nvm со страницы проекта на GitHub. Номер версии может отличаться, но в целом, для загрузки и установки можно использовать следующую команду :

Просмотреть установочный скрипт можно используя :

Запустите скрипт:

Эта команда установит ПО в вашу домашнюю директорию в папку . Также в файл будут добавлены некоторые необходимые для работы настройки.

Для получения доступа к функционалу nvm, вам необходимо перелогиниться в системе, либо вы можете использовать команду для того, чтобы применить изменения не прерывая текущую сессию:

Теперь, когда nvm установлен, вы можете устанавливать изолированные версии Node.js.

Чтобы узнать, какие версии Node.js доступны для установки, наберите:

Как вы можете видеть, новейшей версией на момент написания руководства является v6.0.0. Установить ее можно при помощи следующей команды:

Обычно nvm переключается на использование последней установленной версии. Вы можете указать nvm использовать только что загруженную версию в явном виде следующим образом:

Если вы устанавливаете Node.js через nvm, исполняемый файл будет иметь имя . Посмотреть, какую версию в данный момент использует shell, можно при помощи команды:

Если у вас установлено несколько версий Node.js, посмотреть их список можно с помощью команды:

Если вы хотите настроить одну из версий как версию по умолчанию, введите:

Эта версия будет автоматически выбираться при начале новой сессии. Вы также можете ссылаться на нее по псевдониму (алиасу) следующим образом:

Каждая версия Node.js имеет свои собственные пакеты, управлять которыми можно при помощи .

может устанавливать пакеты в директорию проектов Node.js при использовании обычного формата. Например, для модуля это можно сделать вот так:

Если вы хотите установить пакет глобально (чтобы он был доступен для других проектов, использующих ту же версию Node.js), следует добавить флаг :

Эта команда установит пакет в директорию:

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

Узнать больше о доступных опциях можно при помощи следующей команды:


  • Tutorial

    Django — это мощная веб-система, помогающая создать приложение или сайт Python с нуля. Django включает упрощенный сервер разработки для локального тестирования кода, однако для серьезных производственных задач требуется более защищенный и мощный веб-сервер. В этом руководстве…

  • Tutorial

    Автор выбрал фонд Free and Open Source Fund для получения пожертвования в рамках программы Write for DOnations. Discourse — это платформа для обсуждений с открытым…

  • Tutorial

    Автор выбрал фонд Electronic Frontier Foundation для получения пожертвований в рамках программы Write for DOnations. Cloudflare — это…

  • Tutorial
    Создание самоподписанных сертификатов SSL для Apache в Ubuntu 20.04

    TLS или протокол безопасности транспортного уровня и предшествующий ему протокол SSL используются для заключения обычного трафика в защищенную оболочку с шифрованием. Используя эту технологию, серверы могут безопасно отправлять информацию клиентам без перехвата сообщений и…

С этим читают