Node.js стандартная установка

Download the latest version of the modification

Node.js стандартная установка

Отлично, вот подробная пошаговая инструкция по созданию простой приветственной страницы на Node.js, которая будет работать на вашем сервере на порту 9000 и будет доступна из интернета по защищенному протоколу HTTPS (SSL) с помощью Cloudflare.

Эта схема идеально подходит для начинающих, так как вся сложная работа с SSL-сертификатами ложится на плечи Cloudflare, а на вашем сервере будет работать простой HTTP-сервер.

Что мы будем делать:

  1. Создадим простой веб-сервер на Node.js, который будет отдавать приветственную HTML-страницу.

  2. Настроим этот сервер на работу на порту 9000.

  3. Запустим его на постоянную работу с помощью менеджера процессов pm2.

  4. Настроим Cloudflare так, чтобы он принимал HTTPS-трафик и безопасно перенаправлял его на порт 9000 нашего сервера.

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

  1. Сервер (VPS/VDS) с любой ОС Linux (например, Ubuntu 22.04).

  2. Установленный Node.js и npm. Если их нет, установите командой: sudo apt update && sudo apt install nodejs npm -y.

  3. Доменное имя, которое вы уже добавили в свой аккаунт Cloudflare.

  4. IP-адрес вашего сервера.


Шаг 1: Создание Node.js приложения

Сначала подключитесь к вашему серверу по SSH.

  1. Создайте папку для проекта и перейдите в нее:

mkdir welcome-page
cd welcome-page

Создайте файл сервера. Назовем его server.js.

nano server.js

Вставьте в этот файл следующий код:

// Подключаем встроенный в Node.js модуль для создания HTTP-сервера
const http = require('http');

// Указываем порт, на котором будет работать наше приложение
const port = 9000;

// Создаем сервер
const server = http.createServer((req, res) => {
  // Устанавливаем код ответа 200 (ОК)
  res.statusCode = 200;

  // Устанавливаем заголовок, сообщающий браузеру, что мы отправляем HTML
  res.setHeader('Content-Type', 'text/html; charset=utf-8');

  // Формируем и отправляем HTML-страницу в качестве ответа
  res.end(`
    <!DOCTYPE html>
    <html lang="ru">
    <head>
      <meta charset="UTF-8">
      <title>Добро пожаловать!</title>
      <style>
        body { 
          font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; 
          display: flex; 
          justify-content: center; 
          align-items: center; 
          height: 100vh; 
          margin: 0; 
          background-color: #282c34; 
          color: white;
        }
        .container {
          text-align: center;
          padding: 40px;
          border-radius: 15px;
          background-color: #20232a;
          box-shadow: 0 10px 25px rgba(0,0,0,0.5);
        }
        h1 {
          color: #61dafb;
        }
      </style>
    </head>
    <body>
      <div class="container">
        <h1>🎉 Добро пожаловать! 🎉</h1>
        <p>Эта страница работает на Node.js на порту ${port}.</p>
        <p>SSL-шифрование обеспечивается с помощью Cloudflare.</p>
      </div>
    </body>
    </html>
  `);
});

// Запускаем сервер и заставляем его "слушать" указанный порт
server.listen(port, () => {
  console.log(`Сервер успешно запущен и работает на http://localhost:${port}`);
});
  1. Сохраните файл и закройте редактор (в nano это Ctrl+X, затем Y, затем Enter).

Шаг 2: Обеспечение непрерывной работы сервера (PM2)

Если вы просто запустите сервер командой node server.js, он остановится, как только вы закроете SSH-сессию. Чтобы он работал постоянно, используем pm2.

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

sudo npm install pm2 -g

Запустите ваше приложение с помощью pm2:

pm2 start server.js --name welcome-page
    • -name welcome-page дает процессу понятное имя.

  1. Убедитесь, что приложение работает:

pm2 list
  1. Вы должны увидеть welcome-page в статусе online.

  2. Сохраните список процессов pm2, чтобы он автоматически запускался после перезагрузки сервера:

pm2 save
pm2 startup
  1. Система даст вам команду, которую нужно выполнить с правами sudo. Скопируйте и выполните ее.


Шаг 3: Настройка брандмауэра (Firewall)

Ваш сервер должен разрешать входящие подключения на порт 9000.

  1. Откройте порт 9000 (на примере ufw для Ubuntu):

  2. sudo ufw allow 9000/tcp

Убедитесь, что правило добавлено:

sudo ufw status
  1. Вы должны увидеть порт 9000 в списке разрешенных.


Шаг 4: Настройка Cloudflare

Это самый важный шаг для обеспечения SSL.

  1. Зайдите в панель управления Cloudflare и выберите ваш домен.

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

    • Перейдите в раздел DNS -> Records.

    • Создайте A-запись, которая указывает на IP-адрес вашего сервера. Вы можете использовать основной домен (@) или поддомен (например, hello).

    • Самое главное: убедитесь, что для этой записи включен прокси-режим (облачко оранжевого цвета, статус "Proxied"). Это активирует защиту и SSL от Cloudflare.

    • Пример:

      • Type: A

      • Name: hello (страница будет доступна по https://hello.your-domain.com)

      • IPv4 address: ВАШ_IP_АДРЕС_СЕРВЕРА

      • Proxy status: Proxied (оранжевое облако)

  3. Настройте режим SSL/TLS:

    • Перейдите в раздел SSL/TLS -> Overview.

    • Выберите режим шифрования Flexible.

      • Почему Flexible? Этот режим означает, что соединение между пользователем и серверами Cloudflare будет зашифровано (HTTPS), а соединение между Cloudflare и вашим сервером — нет (HTTP). Это идеально для нашей ситуации, так как наш Node.js сервер работает по HTTP.

  4. Перенаправьте трафик на нужный порт (9000):

    • По умолчанию Cloudflare отправляет трафик на стандартные порты 80 (HTTP) и 443 (HTTPS). Нам нужно сказать ему отправлять трафик на порт 9000. Для этого используются Origin Rules.

    • Перейдите в раздел Rules -> Origin Rules.

    • Нажмите Create origin rule.

    • Rule name: Redirect to Port 9000 (или любое другое имя).

    • В разделе "When incoming requests match..." настройте условие. Например, чтобы правило срабатывало для вашего поддомена:

      • Field: Hostname

      • Operator: equals

      • Value: hello.your-domain.com (имя, которое вы указали в DNS)

    • В разделе "Then..." укажите действие:

      • В поле Port, выберите Rewrite to... и введите 9000.

    • Нажмите Deploy.

Шаг 5: Проверка

Подождите пару минут, пока настройки DNS и правила Cloudflare вступят в силу.

Откройте ваш браузер и перейдите по адресу https:// + имя_из_DNS (например, https://hello.your-domain.com).

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

Download Files

Downloads

No comments yet.

Добавить комментарий

Поделитесь своим мнением

Insulting, harassing, or discussing politics is prohibited, especially in light of the war between Ukraine and Russia. We'll ban you without the possibility of recovery.

Подтвердите, что вы не робот

Комментарий будет опубликован после проверки
или
регистрация Я забыл свой пароль
Оцените работу движка
Статистика