Бесплатная виртуальная машина cloud.ru
Развертывание приложения Next.js на сервере Cloud.ru
Платформа Cloud.ru предоставляет удобный способ развертывания серверов для различных задач, включая запуск приложений Next.js. В данной статье рассмотрим процесс создания виртуальной машины на Cloud.ru, настройки безопасности и развертывания приложения Next.js с помощью Nginx и Node.js.
Часть 1: Регистрация на Cloud.ru и создание виртуальной машины
- Зарегистрируйтесь на платформе Cloud.ru: Перейдите на console.cloud.ru и создайте учетную запись. Заполните все необходимые данные, чтобы получить доступ к платформе.
- Создайте виртуальный сервер: В личном кабинете Cloud.ru создайте новую виртуальную машину, выбрав образ
Ubuntu 22.04
или любой другой поддерживаемый образ Linux. - Обратите внимание на стоимость внешнего IP: Подключение внешнего IP-адреса может потребовать дополнительных расходов. В Cloud.ru его стоимость составляет около 150 рублей в месяц. Это нужно учитывать при настройке доступности приложения через интернет.
Часть 2: Установка Node.js и Nginx на сервер
После создания и запуска виртуальной машины подключитесь к ней через SSH и установите необходимые инструменты для работы с приложением Next.js.
ssh username@your_vm_ip
Замените username
на ваше имя пользователя, а your_vm_ip
— на IP-адрес виртуальной машины.
Установка Node.js
-
- Обновите пакеты на сервере:
sudo apt update && sudo apt upgrade -y
- Установите
curl
, который необходим для загрузки nvm:sudo apt install curl -y
- Загрузите и установите nvm (Node Version Manager):
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash source ~/.bashrc
- Установите последнюю стабильную версию Node.js:
nvm install --lts
- Обновите пакеты на сервере:
Установка Nginx
- Установите веб-сервер Nginx:
sudo apt install nginx -y
- Проверьте, что Nginx установлен и запущен:
systemctl status nginx
Настройка Nginx для проксирования Next.js
Создайте конфигурационный файл для виртуального хоста, чтобы настроить проксирование запросов от Nginx к вашему приложению Next.js, работающему на порту 3000.
- Создайте новый файл конфигурации:
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; }
- Создайте символическую ссылку для активации конфигурации:
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 было доступно из интернета, настройте правила безопасности для разрешения входящего и исходящего трафика.
- В интерфейсе Cloud.ru найдите раздел с группами безопасности.
- Проверьте, какая группа безопасности назначена вашему серверу. Выберите группу, либо создайте новую группу для управления доступом.
- Добавьте следующие правила для разрешения трафика по HTTP и HTTPS:
Протокол | Порт | Тип источника | Источник | Описание |
---|---|---|---|---|
TCP | 80 | IP-адрес | 0.0.0.0/0 | HTTP IPv4 |
TCP | 443 | IP-адрес | 0.0.0.0/0 | HTTPS IPv4 |
После настройки правил сохраните изменения и убедитесь, что ваш сервер доступен через публичный IP.
Развертывание и запуск Next.js в продакшн-режиме
Теперь можно запустить Next.js в продакшн-режиме:
- Перейдите в директорию вашего приложения и соберите его:
npm run build
- Запустите приложение:
npm start
Теперь приложение будет работать на порту 3000 и доступно по адресу
http://example.com
илиhttp://your_public_ip
.
Заключение
Ваша виртуальная машина на Cloud.ru успешно настроена для работы с приложением Next.js, которое теперь доступно в интернете. Использование Nginx и настройки правил безопасности обеспечивает стабильность и безопасность работы. Убедитесь, что внешний IP настроен правильно, а группа безопасности разрешает доступ по HTTP и HTTPS, чтобы пользователи могли получить доступ к вашему приложению.
Обсудим ваш проект?
Не ждите идеального момента или подходящего времени — начинайте прямо сейчас! Свяжитесь со мной, и я помогу воплотить ваши идеи в реальность.