seomix.

Бесплатная виртуальная машина cloud.ru

Развертывание приложения Next.js на сервере Cloud.ru

Платформа Cloud.ru предоставляет удобный способ развертывания серверов для различных задач, включая запуск приложений Next.js. В данной статье рассмотрим процесс создания виртуальной машины на Cloud.ru, настройки безопасности и развертывания приложения Next.js с помощью Nginx и Node.js.

Часть 1: Регистрация на Cloud.ru и создание виртуальной машины

  1. Зарегистрируйтесь на платформе Cloud.ru: Перейдите на console.cloud.ru и создайте учетную запись. Заполните все необходимые данные, чтобы получить доступ к платформе.
  2. Создайте виртуальный сервер: В личном кабинете Cloud.ru создайте новую виртуальную машину, выбрав образ Ubuntu 22.04 или любой другой поддерживаемый образ Linux.
  3. Обратите внимание на стоимость внешнего IP: Подключение внешнего IP-адреса может потребовать дополнительных расходов. В Cloud.ru его стоимость составляет около 150 рублей в месяц. Это нужно учитывать при настройке доступности приложения через интернет.

Часть 2: Установка Node.js и Nginx на сервер

После создания и запуска виртуальной машины подключитесь к ней через SSH и установите необходимые инструменты для работы с приложением Next.js.

ssh username@your_vm_ip

Замените username на ваше имя пользователя, а your_vm_ip — на IP-адрес виртуальной машины.

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

    1. Обновите пакеты на сервере:
      sudo apt update && sudo apt upgrade -y
    2. Установите curl, который необходим для загрузки nvm:
      sudo apt install curl -y
    3. Загрузите и установите nvm (Node Version Manager):
      curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
      source ~/.bashrc
    4. Установите последнюю стабильную версию Node.js:
      nvm install --lts

Установка Nginx

  1. Установите веб-сервер Nginx:
    sudo apt install nginx -y
  2. Проверьте, что Nginx установлен и запущен:
    systemctl status nginx

Настройка Nginx для проксирования Next.js

Создайте конфигурационный файл для виртуального хоста, чтобы настроить проксирование запросов от Nginx к вашему приложению Next.js, работающему на порту 3000.

  1. Создайте новый файл конфигурации:
    sudo nano /etc/nginx/sites-available/nextjs_app.conf

    Добавьте следующую конфигурацию:

    server {
        listen 80;
        server_name example.com www.example.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_cache_bypass $http_upgrade;
        }
    
        access_log /var/log/nginx/nextjs_app.access.log;
        error_log /var/log/nginx/nextjs_app.error.log;
    }
  2. Создайте символическую ссылку для активации конфигурации:
    sudo ln -s /etc/nginx/sites-available/nextjs_app.conf /etc/nginx/sites-enabled/

    Проверьте конфигурацию на наличие ошибок и перезагрузите Nginx:

    sudo nginx -t
    sudo systemctl reload nginx

Часть 3: Настройка группы безопасности для разрешения входящего и исходящего трафика

Чтобы приложение Next.js было доступно из интернета, настройте правила безопасности для разрешения входящего и исходящего трафика.

  1. В интерфейсе Cloud.ru найдите раздел с группами безопасности.
  2. Проверьте, какая группа безопасности назначена вашему серверу. Выберите группу, либо создайте новую группу для управления доступом.
  3. Добавьте следующие правила для разрешения трафика по HTTP и HTTPS:
ПротоколПортТип источникаИсточникОписание
TCP80IP-адрес0.0.0.0/0HTTP IPv4
TCP443IP-адрес0.0.0.0/0HTTPS IPv4

После настройки правил сохраните изменения и убедитесь, что ваш сервер доступен через публичный IP.

Развертывание и запуск Next.js в продакшн-режиме

Теперь можно запустить Next.js в продакшн-режиме:

  1. Перейдите в директорию вашего приложения и соберите его:
    npm run build
  2. Запустите приложение:
    npm start

    Теперь приложение будет работать на порту 3000 и доступно по адресу http://example.com или http://your_public_ip.

Заключение

Ваша виртуальная машина на Cloud.ru успешно настроена для работы с приложением Next.js, которое теперь доступно в интернете. Использование Nginx и настройки правил безопасности обеспечивает стабильность и безопасность работы. Убедитесь, что внешний IP настроен правильно, а группа безопасности разрешает доступ по HTTP и HTTPS, чтобы пользователи могли получить доступ к вашему приложению.

Free tier

Обсудим ваш проект?

Не ждите идеального момента или подходящего времени — начинайте прямо сейчас! Свяжитесь со мной, и я помогу воплотить ваши идеи в реальность.