В последнее время публикация веб-приложений на собственных серверах становится все более актуальной. Одной из самых популярных технологий является Next.js. В этой статье мы рассмотрим детали процесса публикации Next.js-приложений на собственном сервере, включая настройку виртуального хостинга, установку Node.js, настройку веб-сервера Nginx и обеспечение безопасного HTTPS-соединения.
Основные варианты публикации приложений
Есть несколько подходов, каждый из которых подходит для разных сценариев:
-
Статический экспорт (Static Site Generation, SSG)
Этот метод идеален для статических сайтов, которые не требуют динамического взаимодействия с сервером. После сборки приложения все страницы экспортируются в виде статических файлов, которые можно разместить на любом статическом сервере (например, Nginx или CDN). -
Инкрементальная статическая регенерация (ISR)
ISR позволяет обновлять статические страницы без необходимости полной пересборки сайта. Это особенно полезно для сайтов с часто обновляемым контентом. -
Серверное приложение (Node.js)
Если требуется динамическое взаимодействие (например, работа с базой данных или API), лучше всего использовать серверное приложение на Node.js. Этот подход открывает доступ к полному функционалу Next.js, включая серверный рендеринг (SSR) и API-роуты.
Настройка виртуального сервера
Первым шагом к публикации приложения является создание виртуального сервера (VPS). При выборе VPS обратите внимание на следующие параметры:
-
Производительность (CPU, RAM, SSD).
-
Надежность хостинг-провайдера (отзывы, поддержка, uptime).
-
Стоимость и гибкость тарифов.
После выбора и настройки VPS можно переходить к установке необходимого программного обеспечения.
Установка Node.js и Next.js
Для работы требуется Node.js. Установим его на сервер:
-
Обновите пакеты системы:
sudo apt update && sudo apt upgrade -y-
Установите Node.js (например, версию 20.x):
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs-
Проверьте установку:
node -v
npm –v-
Перенесите проект Next.js на сервер с помощью Git:
git clone <URL репозитория>
cd ваш-проект-
Установите зависимости:
npm install-
Соберите проект (если используется SSG или ISR):
npm run buildНастройка Nginx
Для обеспечения доступа по доменному имени и организации правильной маршрутизации необходимо установить и настроить веб-сервер.
-
Установите Nginx:
sudo apt install nginx -y-
Создайте конфигурационный файл для вашего сайта в директории /etc/nginx/sites-available/:
sudo nano /etc/nginx/sites-available/ваш-сайт-
Добавьте следующую конфигурацию (для серверного приложения):
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;
}
}-
Активируйте конфигурацию и перезагрузите 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.
-
Установите Certbot:
sudo apt install certbot python3-certbot-nginx –y-
Получите сертификат:
sudo certbot --nginx -d ваш_домен.com-
Certbot автоматически обновит конфигурацию и настроит HTTPS. Сертификаты будут обновляться автоматически каждые 90 дней.
Использование HTTP/2
HTTP/2 предлагает множество улучшений, включая более эффективное использование ресурсов и снижение времени загрузки. Для активации HTTP/2 добавьте параметр http2 в конфигурацию Nginx:
-
Установите PM2:
npm install -g pm2-
Запустите приложение:
pm2 start npm --name "my-app" -- run start-
Сохраните конфигурацию PM2:
pm2 save-
Настройте автозагрузку PM2 при старте системы:
pm2 startupЗаключение
Разворачиваем VPS, настраиваем Node.js, прокачиваем Nginx и подключаем HTTPS — это фундамент, на котором строится мощное и надежное приложение. Выбирайте стратегию под свои задачи: статический экспорт, инкрементальная регенерация или серверный рендеринг — Next.js подходит под любые сценарии. Добавляем автоматизацию с PM2, ускоряем отклик через HTTP/2 — и ваш проект летает, защищен и работает как часы. Теперь сервер готов принимать нагрузку!
Что нужно запомнить
Размещение Next.js-приложения на собственном сервере — это не так сложно, как кажется. Главное — правильно выбрать стратегию, настроить окружение и позаботиться о безопасности.
Варианты публикации
-
Статический экспорт (SSG) — идеален для сайтов без серверной логики.
-
ISR — позволяет обновлять страницы без полной пересборки проекта.
-
Серверный рендеринг (Node.js) — подходит для динамических приложений с базой данных и API.
Настройка окружения
-
VPS — выбираем сервер с достаточной мощностью.
-
Node.js и Next.js — устанавливаем и настраиваем систему.
-
Nginx — подключаем маршрутизацию для статики или проксируем запросы.
-
HTTPS — защищаем соединение через Certbot и Let’s Encrypt.
-
Оптимизация — PM2 для управления процессами, HTTP/2 для ускорения загрузки.




