Публикация приложений на Next.js на собственном хостинге

Опубликовано: 07.04.2025 - 17:22 | Илья Родин

Содержание

В последнее время публикация веб-приложений на собственных серверах становится все более актуальной. Одной из самых популярных технологий является Next.js. В этой статье мы рассмотрим детали процесса публикации Next.js-приложений на собственном сервере, включая настройку виртуального хостинга, установку Node.js, настройку веб-сервера Nginx и обеспечение безопасного HTTPS-соединения.

Основные варианты публикации приложений

Есть несколько подходов, каждый из которых подходит для разных сценариев:

  1. Статический экспорт (Static Site Generation, SSG)
    Этот метод идеален для статических сайтов, которые не требуют динамического взаимодействия с сервером. После сборки приложения все страницы экспортируются в виде статических файлов, которые можно разместить на любом статическом сервере (например, Nginx или CDN).

  2. Инкрементальная статическая регенерация (ISR)
    ISR позволяет обновлять статические страницы без необходимости полной пересборки сайта. Это особенно полезно для сайтов с часто обновляемым контентом.

  3. Серверное приложение (Node.js)
    Если требуется динамическое взаимодействие (например, работа с базой данных или API), лучше всего использовать серверное приложение на Node.js. Этот подход открывает доступ к полному функционалу Next.js, включая серверный рендеринг (SSR) и API-роуты.

Настройка виртуального сервера

Первым шагом к публикации приложения является создание виртуального сервера (VPS). При выборе VPS обратите внимание на следующие параметры:

  • Производительность (CPU, RAM, SSD).

  • Надежность хостинг-провайдера (отзывы, поддержка, uptime).

  • Стоимость и гибкость тарифов.

После выбора и настройки VPS можно переходить к установке необходимого программного обеспечения.

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

Для работы требуется Node.js. Установим его на сервер:

  1. Обновите пакеты системы:

sudo apt update && sudo apt upgrade -y
  1. Установите Node.js (например, версию 20.x):

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
  1. Проверьте установку:

node -v
npm –v
  1. Перенесите проект Next.js на сервер с помощью Git:

git clone <URL репозитория>
cd ваш-проект
  1. Установите зависимости:

npm install
  1. Соберите проект (если используется SSG или ISR):

npm run build

Настройка Nginx

Для обеспечения доступа по доменному имени и организации правильной маршрутизации необходимо установить и настроить веб-сервер.

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

sudo apt install nginx -y
  1. Создайте конфигурационный файл для вашего сайта в директории /etc/nginx/sites-available/:

sudo nano /etc/nginx/sites-available/ваш-сайт
  1. Добавьте следующую конфигурацию (для серверного приложения):

server {
listen 80;
server_name ваш_домен.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;
}
}

Если вы используете статический экспорт (SSG), настройка будет выглядеть так:

server {
listen 80;
server_name ваш_домен.com;

root /путь/к/статическим/файлам;
index index.html;

location / {
try_files $uri $uri/ =404;
}
}
  1. Активируйте конфигурацию и перезагрузите Nginx:

sudo ln -s /etc/nginx/sites-available/ваш-сайт /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Обеспечение HTTPS

Для настройки безопасного подключения HTTPS используйте Certbot, который автоматически установит и настроит SSL-сертификат от Let's Encrypt.

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

sudo apt install certbot python3-certbot-nginx –y
  1. Получите сертификат:

sudo certbot --nginx -d ваш_домен.com
  1. Certbot автоматически обновит конфигурацию и настроит HTTPS. Сертификаты будут обновляться автоматически каждые 90 дней.

Использование HTTP/2

HTTP/2 предлагает множество улучшений, включая более эффективное использование ресурсов и снижение времени загрузки. Для активации HTTP/2 добавьте параметр http2 в конфигурацию Nginx:

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

npm install -g pm2
  1. Запустите приложение:

pm2 start npm --name "my-app" -- run start
  1. Сохраните конфигурацию PM2:

pm2 save
  1. Настройте автозагрузку PM2 при старте системы:

pm2 startup

Заключение

Разворачиваем VPS, настраиваем Node.js, прокачиваем Nginx и подключаем HTTPS — это фундамент, на котором строится мощное и надежное приложение. Выбирайте стратегию под свои задачи: статический экспорт, инкрементальная регенерация или серверный рендеринг — Next.js подходит под любые сценарии. Добавляем автоматизацию с PM2, ускоряем отклик через HTTP/2 — и ваш проект летает, защищен и работает как часы. Теперь сервер готов принимать нагрузку!

Что нужно запомнить

Размещение Next.js-приложения на собственном сервере — это не так сложно, как кажется. Главное — правильно выбрать стратегию, настроить окружение и позаботиться о безопасности.

Варианты публикации

  • Статический экспорт (SSG) — идеален для сайтов без серверной логики.

  • ISR — позволяет обновлять страницы без полной пересборки проекта.

  • Серверный рендеринг (Node.js) — подходит для динамических приложений с базой данных и API.

Настройка окружения

  1. VPS — выбираем сервер с достаточной мощностью.

  2. Node.js и Next.js — устанавливаем и настраиваем систему.

  3. Nginx — подключаем маршрутизацию для статики или проксируем запросы.

  4. HTTPS — защищаем соединение через Certbot и Let’s Encrypt.

  5. Оптимизация — PM2 для управления процессами, HTTP/2 для ускорения загрузки.

Илья Родин хостинг-эксперт
  • Опыт работы в IT более 15 лет
  • прораммист, DevOps-инженер, техно-гик
Оценить эту страницу
0
Средняя: 5 (2 оценок)

Еще полезные статьи