Установка и настройка Node.js и npm: различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску
Новая страница: «= Установка и настройка Node.js и npm = == 1. Подготовка системы == * Войдите в систему под учетно…»
 
Нет описания правки
 
Строка 6: Строка 6:
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.


== 2. Установка Node.js ===
== 2. Установка Node.js ==


=== Обновление системы ===
=== Обновление системы ===


1. Обновите систему:
1. Обновите систему:
<code>sudo apt update</code>
<pre>sudo apt update</pre>


2. Установите необходимые пакеты:
2. Установите необходимые пакеты:
<code>sudo apt install -y curl wget gnupg2 software-properties-common</code>
<pre>sudo apt install -y curl wget gnupg2 software-properties-common</pre>


=== Установка Node.js через NodeSource ===
=== Установка Node.js через NodeSource ===


1. Добавьте репозиторий NodeSource:
1. Добавьте репозиторий NodeSource:
<code>curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -</code>
<pre>curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -</pre>


2. Установите Node.js:
2. Установите Node.js:
<code>sudo apt install -y nodejs</code>
<pre>sudo apt install -y nodejs</pre>


3. Проверьте версии:
3. Проверьте версии:
<code>node --version</code>
<pre>node --version</pre>
<code>npm --version</code>
<pre>npm --version</pre>


=== Альтернативная установка через snap ===
=== Альтернативная установка через snap ===


1. Установите snap:
1. Установите snap:
<code>sudo apt install -y snapd</code>
<pre>sudo apt install -y snapd</pre>


2. Установите Node.js через snap:
2. Установите Node.js через snap:
<code>sudo snap install node --classic</code>
<pre>sudo snap install node --classic</pre>


=== Установка через NVM (Node Version Manager) ===
=== Установка через NVM (Node Version Manager) ===


1. Скачайте и установите NVM:
1. Скачайте и установите NVM:
<code>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash</code>
<pre>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash</pre>


2. Перезагрузите терминал или выполните:
2. Перезагрузите терминал или выполните:
<code>source ~/.bashrc</code>
<pre>source ~/.bashrc</pre>


3. Установите последнюю версию Node.js:
3. Установите последнюю версию Node.js:
<code>nvm install node</code>
<pre>nvm install node</pre>


4. Используйте установленную версию:
4. Используйте установленную версию:
<code>nvm use node</code>
<pre>nvm use node</pre>


5. Установите LTS версию:
5. Установите LTS версию:
<code>nvm install --lts</code>
<pre>nvm install --lts</pre>
<code>nvm use --lts</code>
<pre>nvm use --lts</pre>


== 3. Настройка npm ===
== 3. Настройка npm ==


=== Обновление npm ===
=== Обновление npm ===


1. Обновите npm до последней версии:
1. Обновите npm до последней версии:
<code>sudo npm install -g npm@latest</code>
<pre>sudo npm install -g npm@latest</pre>


2. Проверьте версию:
2. Проверьте версию:
<code>npm --version</code>
<pre>npm --version</pre>


=== Настройка npm конфигурации ===
=== Настройка npm конфигурации ===


1. Настройте глобальную директорию для пакетов:
1. Настройте глобальную директорию для пакетов:
<code>mkdir ~/.npm-global</code>
<pre>mkdir ~/.npm-global</pre>
<code>npm config set prefix '~/.npm-global'</code>
<pre>npm config set prefix '~/.npm-global'</pre>


2. Добавьте путь в .bashrc:
2. Добавьте путь в .bashrc:
<code>echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc</code>
<pre>echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc</pre>
<code>source ~/.bashrc</code>
<pre>source ~/.bashrc</pre>


=== Настройка npm реестра ===
=== Настройка npm реестра ===


1. Установите альтернативный реестр (например, Yarn):
1. Установите альтернативный реестр (например, Yarn):
<code>npm install -g yarn</code>
<pre>npm install -g yarn</pre>


2. Настройте реестр:
2. Настройте реестр:
<code>npm config set registry https://registry.npmjs.org/</code>
<pre>npm config set registry https://registry.npmjs.org/</pre>


3. Проверьте конфигурацию:
3. Проверьте конфигурацию:
<code>npm config list</code>
<pre>npm config list</pre>


== 4. Управление пакетами ===
== 4. Управление пакетами ==


=== Глобальная установка пакетов ===
=== Глобальная установка пакетов ===


1. '''Установка популярных пакетов''':
1. '''Установка популярных пакетов''':
<code>sudo npm install -g express-generator</code>
<pre>sudo npm install -g express-generator</pre>
<code>sudo npm install -g nodemon</code>
<pre>sudo npm install -g nodemon</pre>
<code>sudo npm install -g pm2</code>
<pre>sudo npm install -g pm2</pre>
<code>sudo npm install -g typescript</code>
<pre>sudo npm install -g typescript</pre>
<code>sudo npm install -g @angular/cli</code>
<pre>sudo npm install -g @angular/cli</pre>


2. '''Просмотр глобальных пакетов''':
2. '''Просмотр глобальных пакетов''':
<code>npm list -g --depth=0</code>
<pre>npm list -g --depth=0</pre>


3. '''Удаление глобальных пакетов''':
3. '''Удаление глобальных пакетов''':
<code>sudo npm uninstall -g package_name</code>
<pre>sudo npm uninstall -g package_name</pre>


=== Локальная установка пакетов ===
=== Локальная установка пакетов ===


1. '''Инициализация проекта''':
1. '''Инициализация проекта''':
<code>mkdir my-project</code>
<pre>mkdir my-project</pre>
<code>cd my-project</code>
<pre>cd my-project</pre>
<code>npm init</code>
<pre>npm init</pre>


2. '''Установка зависимостей''':
2. '''Установка зависимостей''':
<code>npm install express</code>
<pre>npm install express</pre>
<code>npm install --save-dev nodemon</code>
<pre>npm install --save-dev nodemon</pre>


3. '''Установка из package.json''':
3. '''Установка из package.json''':
<code>npm install</code>
<pre>npm install</pre>


=== Управление зависимостями ===
=== Управление зависимостями ===


1. '''Просмотр установленных пакетов''':
1. '''Просмотр установленных пакетов''':
<code>npm list</code>
<pre>npm list</pre>


2. '''Проверка устаревших пакетов''':
2. '''Проверка устаревших пакетов''':
<code>npm outdated</code>
<pre>npm outdated</pre>


3. '''Обновление пакетов''':
3. '''Обновление пакетов''':
<code>npm update</code>
<pre>npm update</pre>


4. '''Аудит безопасности''':
4. '''Аудит безопасности''':
<code>npm audit</code>
<pre>npm audit</pre>
<code>npm audit fix</code>
<pre>npm audit fix</pre>


== 5. Создание Node.js приложения ===
== 5. Создание Node.js приложения ==


=== Простое веб-приложение ===
=== Простое веб-приложение ===


1. Создайте файл app.js:
1. Создайте файл app.js:
<code>nano app.js</code>
<pre>nano app.js</pre>


2. Добавьте код:
2. Добавьте код:
<code>const express = require('express');
<pre>const express = require('express');
const app = express();
const app = express();
const port = 3000;
const port = 3000;
Строка 150: Строка 150:
     console.log(`Server running at http://localhost:${port}`);
     console.log(`Server running at http://localhost:${port}`);
});
});
</code>
</pre>


3. Установите Express:
3. Установите Express:
<code>npm install express</code>
<pre>npm install express</pre>


4. Запустите приложение:
4. Запустите приложение:
<code>node app.js</code>
<pre>node app.js</pre>


=== Создание API сервера ===
=== Создание API сервера ===


1. Создайте файл server.js:
1. Создайте файл server.js:
<code>nano server.js</code>
<pre>nano server.js</pre>


2. Добавьте код:
2. Добавьте код:
<code>const express = require('express');
<pre>const express = require('express');
const cors = require('cors');
const cors = require('cors');
const app = express();
const app = express();
Строка 189: Строка 189:
     console.log(`API server running at http://localhost:${port}`);
     console.log(`API server running at http://localhost:${port}`);
});
});
</code>
</pre>


3. Установите зависимости:
3. Установите зависимости:
<code>npm install express cors</code>
<pre>npm install express cors</pre>


== 6. Управление процессами ===
== 6. Управление процессами ==


=== Использование PM2 ===
=== Использование PM2 ===


1. Установите PM2:
1. Установите PM2:
<code>sudo npm install -g pm2</code>
<pre>sudo npm install -g pm2</pre>


2. Запустите приложение через PM2:
2. Запустите приложение через PM2:
<code>pm2 start app.js --name "my-app"</code>
<pre>pm2 start app.js --name "my-app"</pre>


3. Просмотр процессов:
3. Просмотр процессов:
<code>pm2 list</code>
<pre>pm2 list</pre>


4. Остановка процесса:
4. Остановка процесса:
<code>pm2 stop my-app</code>
<pre>pm2 stop my-app</pre>


5. Перезапуск процесса:
5. Перезапуск процесса:
<code>pm2 restart my-app</code>
<pre>pm2 restart my-app</pre>


6. Удаление процесса:
6. Удаление процесса:
<code>pm2 delete my-app</code>
<pre>pm2 delete my-app</pre>


=== Настройка автозапуска PM2 ===
=== Настройка автозапуска PM2 ===


1. Сохраните текущие процессы:
1. Сохраните текущие процессы:
<code>pm2 save</code>
<pre>pm2 save</pre>


2. Настройте автозапуск:
2. Настройте автозапуск:
<code>pm2 startup</code>
<pre>pm2 startup</pre>


3. Следуйте инструкциям для настройки systemd
3. Следуйте инструкциям для настройки systemd
Строка 229: Строка 229:


1. Просмотр логов:
1. Просмотр логов:
<code>pm2 logs</code>
<pre>pm2 logs</pre>
<code>pm2 logs my-app</code>
<pre>pm2 logs my-app</pre>


2. Мониторинг в реальном времени:
2. Мониторинг в реальном времени:
<code>pm2 monit</code>
<pre>pm2 monit</pre>


3. Перезагрузка без простоя:
3. Перезагрузка без простоя:
<code>pm2 reload my-app</code>
<pre>pm2 reload my-app</pre>


== 7. Настройка веб-сервера ===
== 7. Настройка веб-сервера ==


=== Настройка Nginx для Node.js ===
=== Настройка Nginx для Node.js ===


1. Установите Nginx:
1. Установите Nginx:
<code>sudo apt install -y nginx</code>
<pre>sudo apt install -y nginx</pre>


2. Создайте конфигурацию:
2. Создайте конфигурацию:
<code>sudo nano /etc/nginx/sites-available/nodejs</code>
<pre>sudo nano /etc/nginx/sites-available/nodejs</pre>


3. Добавьте конфигурацию:
3. Добавьте конфигурацию:
<code>server {
<pre>server {
     listen 80;
     listen 80;
     server_name your-domain.com;
     server_name your-domain.com;
Строка 265: Строка 265:
     }
     }
}
}
</code>
</pre>


4. Включите сайт:
4. Включите сайт:
<code>sudo ln -s /etc/nginx/sites-available/nodejs /etc/nginx/sites-enabled/</code>
<pre>sudo ln -s /etc/nginx/sites-available/nodejs /etc/nginx/sites-enabled/</pre>


5. Проверьте конфигурацию:
5. Проверьте конфигурацию:
<code>sudo nginx -t</code>
<pre>sudo nginx -t</pre>


6. Перезапустите Nginx:
6. Перезапустите Nginx:
<code>sudo systemctl restart nginx</code>
<pre>sudo systemctl restart nginx</pre>


=== Настройка Apache для Node.js ===
=== Настройка Apache для Node.js ===


1. Установите Apache:
1. Установите Apache:
<code>sudo apt install -y apache2</code>
<pre>sudo apt install -y apache2</pre>


2. Включите необходимые модули:
2. Включите необходимые модули:
<code>sudo a2enmod proxy</code>
<pre>sudo a2enmod proxy</pre>
<code>sudo a2enmod proxy_http</code>
<pre>sudo a2enmod proxy_http</pre>


3. Создайте конфигурацию:
3. Создайте конфигурацию:
<code>sudo nano /etc/apache2/sites-available/nodejs.conf</code>
<pre>sudo nano /etc/apache2/sites-available/nodejs.conf</pre>


4. Добавьте конфигурацию:
4. Добавьте конфигурацию:
<code><VirtualHost *:80>
<pre><VirtualHost *:80>
     ServerName your-domain.com
     ServerName your-domain.com
      
      
Строка 296: Строка 296:
     ProxyPassReverse / http://localhost:3000/
     ProxyPassReverse / http://localhost:3000/
</VirtualHost>
</VirtualHost>
</code>
</pre>


5. Включите сайт:
5. Включите сайт:
<code>sudo a2ensite nodejs</code>
<pre>sudo a2ensite nodejs</pre>


6. Перезапустите Apache:
6. Перезапустите Apache:
<code>sudo systemctl restart apache2</code>
<pre>sudo systemctl restart apache2</pre>


== 8. Настройка SSL ===
== 8. Настройка SSL ==


=== Установка Certbot ===
=== Установка Certbot ===


1. Установите Certbot:
1. Установите Certbot:
<code>sudo apt install -y certbot python3-certbot-nginx</code>
<pre>sudo apt install -y certbot python3-certbot-nginx</pre>


2. Получите SSL сертификат:
2. Получите SSL сертификат:
<code>sudo certbot --nginx -d your-domain.com</code>
<pre>sudo certbot --nginx -d your-domain.com</pre>


3. Настройте автоматическое обновление:
3. Настройте автоматическое обновление:
<code>sudo crontab -e</code>
<pre>sudo crontab -e</pre>


4. Добавьте задачу:
4. Добавьте задачу:
<code>0 12 * * * /usr/bin/certbot renew --quiet</code>
<pre>0 12 * * * /usr/bin/certbot renew --quiet</pre>


=== Настройка HTTPS в Node.js ===
=== Настройка HTTPS в Node.js ===


1. Установите https модуль:
1. Установите https модуль:
<code>npm install https</code>
<pre>npm install https</pre>


2. Создайте HTTPS сервер:
2. Создайте HTTPS сервер:
<code>const https = require('https');
<pre>const https = require('https');
const fs = require('fs');
const fs = require('fs');
const express = require('express');
const express = require('express');
Строка 340: Строка 340:
     console.log('HTTPS server running on port 443');
     console.log('HTTPS server running on port 443');
});
});
</code>
</pre>


== 9. Тестирование и отладка ===
== 9. Тестирование и отладка ==


=== Использование nodemon ===
=== Использование nodemon ===


1. Установите nodemon:
1. Установите nodemon:
<code>sudo npm install -g nodemon</code>
<pre>sudo npm install -g nodemon</pre>


2. Запустите приложение с автоперезагрузкой:
2. Запустите приложение с автоперезагрузкой:
<code>nodemon app.js</code>
<pre>nodemon app.js</pre>


3. Настройте nodemon.json:
3. Настройте nodemon.json:
<code>nano nodemon.json</code>
<pre>nano nodemon.json</pre>


4. Добавьте конфигурацию:
4. Добавьте конфигурацию:
<code>{
<pre>{
     "watch": ["src"],
     "watch": ["src"],
     "ext": "js,json",
     "ext": "js,json",
Строка 362: Строка 362:
     "exec": "node src/index.js"
     "exec": "node src/index.js"
}
}
</code>
</pre>


=== Отладка с помощью debugger ===
=== Отладка с помощью debugger ===


1. Запустите приложение в режиме отладки:
1. Запустите приложение в режиме отладки:
<code>node --inspect app.js</code>
<pre>node --inspect app.js</pre>


2. Откройте Chrome DevTools:
2. Откройте Chrome DevTools:
<code>chrome://inspect</code>
<pre>chrome://inspect</pre>


3. Используйте console.log для отладки:
3. Используйте console.log для отладки:
<code>console.log('Debug info:', variable);</code>
<pre>console.log('Debug info:', variable);</pre>


== 10. Управление версиями Node.js ===
== 10. Управление версиями Node.js ==


=== Использование NVM ===
=== Использование NVM ===


1. '''Установка конкретной версии''':
1. '''Установка конкретной версии''':
<code>nvm install 16.20.0</code>
<pre>nvm install 16.20.0</pre>
<code>nvm use 16.20.0</code>
<pre>nvm use 16.20.0</pre>


2. '''Установка LTS версии''':
2. '''Установка LTS версии''':
<code>nvm install --lts</code>
<pre>nvm install --lts</pre>
<code>nvm use --lts</code>
<pre>nvm use --lts</pre>


3. '''Просмотр установленных версий''':
3. '''Просмотр установленных версий''':
<code>nvm list</code>
<pre>nvm list</pre>


4. '''Установка версии по умолчанию''':
4. '''Установка версии по умолчанию''':
<code>nvm alias default 18.17.0</code>
<pre>nvm alias default 18.17.0</pre>


=== Обновление Node.js ===
=== Обновление Node.js ===


1. '''Обновление через NVM''':
1. '''Обновление через NVM''':
<code>nvm install node</code>
<pre>nvm install node</pre>
<code>nvm use node</code>
<pre>nvm use node</pre>


2. '''Обновление через apt''':
2. '''Обновление через apt''':
<code>curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -</code>
<pre>curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -</pre>
<code>sudo apt install -y nodejs</code>
<pre>sudo apt install -y nodejs</pre>


== 11. Устранение неполадок ===
== 11. Устранение неполадок ==


=== Частые проблемы ===
=== Частые проблемы ===
Строка 418: Строка 418:


3. '''Проблемы с зависимостями''':
3. '''Проблемы с зависимостями''':
* Очистите npm кэш: <code>npm cache clean --force</code>
* Очистите npm кэш: <pre>npm cache clean --force</pre>
* Удалите node_modules: <code>rm -rf node_modules</code>
* Удалите node_modules: <pre>rm -rf node_modules</pre>
* Переустановите зависимости: <code>npm install</code>
* Переустановите зависимости: <pre>npm install</pre>


=== Диагностика ===
=== Диагностика ===


1. '''Проверка версий''':
1. '''Проверка версий''':
<code>node --version</code>
<pre>node --version</pre>
<code>npm --version</code>
<pre>npm --version</pre>


2. '''Проверка путей''':
2. '''Проверка путей''':
<code>which node</code>
<pre>which node</pre>
<code>which npm</code>
<pre>which npm</pre>


3. '''Проверка конфигурации''':
3. '''Проверка конфигурации''':
<code>npm config list</code>
<pre>npm config list</pre>


4. '''Проверка глобальных пакетов''':
4. '''Проверка глобальных пакетов''':
<code>npm list -g --depth=0</code>
<pre>npm list -g --depth=0</pre>


== Заключение ==
== Заключение ==

Текущая версия от 10:44, 15 октября 2025

Установка и настройка Node.js и npm

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка Node.js

Обновление системы

1. Обновите систему:

sudo apt update

2. Установите необходимые пакеты:

sudo apt install -y curl wget gnupg2 software-properties-common

Установка Node.js через NodeSource

1. Добавьте репозиторий NodeSource:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

2. Установите Node.js:

sudo apt install -y nodejs

3. Проверьте версии:

node --version
npm --version

Альтернативная установка через snap

1. Установите snap:

sudo apt install -y snapd

2. Установите Node.js через snap:

sudo snap install node --classic

Установка через NVM (Node Version Manager)

1. Скачайте и установите NVM:

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

2. Перезагрузите терминал или выполните:

source ~/.bashrc

3. Установите последнюю версию Node.js:

nvm install node

4. Используйте установленную версию:

nvm use node

5. Установите LTS версию:

nvm install --lts
nvm use --lts

3. Настройка npm

Обновление npm

1. Обновите npm до последней версии:

sudo npm install -g npm@latest

2. Проверьте версию:

npm --version

Настройка npm конфигурации

1. Настройте глобальную директорию для пакетов:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

2. Добавьте путь в .bashrc:

echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Настройка npm реестра

1. Установите альтернативный реестр (например, Yarn):

npm install -g yarn

2. Настройте реестр:

npm config set registry https://registry.npmjs.org/

3. Проверьте конфигурацию:

npm config list

4. Управление пакетами

Глобальная установка пакетов

1. Установка популярных пакетов:

sudo npm install -g express-generator
sudo npm install -g nodemon
sudo npm install -g pm2
sudo npm install -g typescript
sudo npm install -g @angular/cli

2. Просмотр глобальных пакетов:

npm list -g --depth=0

3. Удаление глобальных пакетов:

sudo npm uninstall -g package_name

Локальная установка пакетов

1. Инициализация проекта:

mkdir my-project
cd my-project
npm init

2. Установка зависимостей:

npm install express
npm install --save-dev nodemon

3. Установка из package.json:

npm install

Управление зависимостями

1. Просмотр установленных пакетов:

npm list

2. Проверка устаревших пакетов:

npm outdated

3. Обновление пакетов:

npm update

4. Аудит безопасности:

npm audit
npm audit fix

5. Создание Node.js приложения

Простое веб-приложение

1. Создайте файл app.js:

nano app.js

2. Добавьте код:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

3. Установите Express:

npm install express

4. Запустите приложение:

node app.js

Создание API сервера

1. Создайте файл server.js:

nano server.js

2. Добавьте код:

const express = require('express');
const cors = require('cors');
const app = express();
const port = 3000;

// Middleware
app.use(cors());
app.use(express.json());

// Routes
app.get('/api/users', (req, res) => {
    res.json([
        { id: 1, name: 'John Doe', email: 'john@example.com' },
        { id: 2, name: 'Jane Smith', email: 'jane@example.com' }
    ]);
});

app.post('/api/users', (req, res) => {
    const { name, email } = req.body;
    res.json({ id: Date.now(), name, email });
});

app.listen(port, () => {
    console.log(`API server running at http://localhost:${port}`);
});

3. Установите зависимости:

npm install express cors

6. Управление процессами

Использование PM2

1. Установите PM2:

sudo npm install -g pm2

2. Запустите приложение через PM2:

pm2 start app.js --name "my-app"

3. Просмотр процессов:

pm2 list

4. Остановка процесса:

pm2 stop my-app

5. Перезапуск процесса:

pm2 restart my-app

6. Удаление процесса:

pm2 delete my-app

Настройка автозапуска PM2

1. Сохраните текущие процессы:

pm2 save

2. Настройте автозапуск:

pm2 startup

3. Следуйте инструкциям для настройки systemd

Мониторинг PM2

1. Просмотр логов:

pm2 logs
pm2 logs my-app

2. Мониторинг в реальном времени:

pm2 monit

3. Перезагрузка без простоя:

pm2 reload my-app

7. Настройка веб-сервера

Настройка Nginx для Node.js

1. Установите Nginx:

sudo apt install -y nginx

2. Создайте конфигурацию:

sudo nano /etc/nginx/sites-available/nodejs

3. Добавьте конфигурацию:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

4. Включите сайт:

sudo ln -s /etc/nginx/sites-available/nodejs /etc/nginx/sites-enabled/

5. Проверьте конфигурацию:

sudo nginx -t

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

sudo systemctl restart nginx

Настройка Apache для Node.js

1. Установите Apache:

sudo apt install -y apache2

2. Включите необходимые модули:

sudo a2enmod proxy
sudo a2enmod proxy_http

3. Создайте конфигурацию:

sudo nano /etc/apache2/sites-available/nodejs.conf

4. Добавьте конфигурацию:

<VirtualHost *:80>
    ServerName your-domain.com
    
    ProxyPreserveHost On
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
</VirtualHost>

5. Включите сайт:

sudo a2ensite nodejs

6. Перезапустите Apache:

sudo systemctl restart apache2

8. Настройка SSL

Установка Certbot

1. Установите Certbot:

sudo apt install -y certbot python3-certbot-nginx

2. Получите SSL сертификат:

sudo certbot --nginx -d your-domain.com

3. Настройте автоматическое обновление:

sudo crontab -e

4. Добавьте задачу:

0 12 * * * /usr/bin/certbot renew --quiet

Настройка HTTPS в Node.js

1. Установите https модуль:

npm install https

2. Создайте HTTPS сервер:

const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();

const options = {
    key: fs.readFileSync('/path/to/private-key.pem'),
    cert: fs.readFileSync('/path/to/certificate.pem')
};

https.createServer(options, app).listen(443, () => {
    console.log('HTTPS server running on port 443');
});

9. Тестирование и отладка

Использование nodemon

1. Установите nodemon:

sudo npm install -g nodemon

2. Запустите приложение с автоперезагрузкой:

nodemon app.js

3. Настройте nodemon.json:

nano nodemon.json

4. Добавьте конфигурацию:

{
    "watch": ["src"],
    "ext": "js,json",
    "ignore": ["src/**/*.spec.js"],
    "exec": "node src/index.js"
}

Отладка с помощью debugger

1. Запустите приложение в режиме отладки:

node --inspect app.js

2. Откройте Chrome DevTools:

chrome://inspect

3. Используйте console.log для отладки:

console.log('Debug info:', variable);

10. Управление версиями Node.js

Использование NVM

1. Установка конкретной версии:

nvm install 16.20.0
nvm use 16.20.0

2. Установка LTS версии:

nvm install --lts
nvm use --lts

3. Просмотр установленных версий:

nvm list

4. Установка версии по умолчанию:

nvm alias default 18.17.0

Обновление Node.js

1. Обновление через NVM:

nvm install node
nvm use node

2. Обновление через apt:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

11. Устранение неполадок

Частые проблемы

1. EACCES ошибки:

  • Используйте sudo для глобальных пакетов
  • Настройте npm prefix
  • Используйте nvm для управления версиями

2. Проблемы с путями:

  • Проверьте PATH переменную
  • Обновите .bashrc
  • Перезапустите терминал

3. Проблемы с зависимостями:

  • Очистите npm кэш:
    npm cache clean --force
  • Удалите node_modules:
    rm -rf node_modules
  • Переустановите зависимости:
    npm install

Диагностика

1. Проверка версий:

node --version
npm --version

2. Проверка путей:

which node
which npm

3. Проверка конфигурации:

npm config list

4. Проверка глобальных пакетов:

npm list -g --depth=0

Заключение

Node.js и npm успешно установлены и настроены! Теперь вы можете разрабатывать и запускать современные веб-приложения на JavaScript.

Для размещения ваших Node.js приложений на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой Node.js и оптимизацией производительности ваших приложений!