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

Предупреждение

Nodejs

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-соединение. Поздравляем, все готово

Нет комментариев.

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