🧱 Суть

Nginx – это веб-сервер и reverse proxy, который принимает запросы пользователей и направляет их нужному приложению.

Например:

Пользователь
     ↓
  Nginx
     ↓
 ┌──────────────┐
 │ /            │ → статический сайт
 │ /onemate     │ → React/Node приложение
 └──────────────┘

📦 Проблема

Порой необходимо на один IP или порт VPS посадить несколько проектов.

✅ Решение

Использовать nginx для корректного перенаправления по вложенным проектам.

💻 Код

Подключение к серверу

Подключение к VPS выполняется через SSH:

ssh root@31.59.170.116

Обновление пакетов

Перед установкой обновляем список пакетов:

apt update && apt upgrade -y

Установка Nginx

Установка:

apt install nginx -y

Проверка состояния сервиса:

systemctl status nginx

Если установка прошла успешно:

Active: active (running)

Структура Nginx

После установки появляется директория:

/etc/nginx

Проверить содержимое:

ls /etc/nginx

Основные элементы:

sites-available
sites-enabled
nginx.conf

Назначение:

  • nginx.conf – основной конфигурационный файл;
  • sites-available – доступные конфиги сайтов;
  • sites-enabled – активные конфиги сайтов.

Создание конфигурации сайта

Переходим в папку конфигураций:

cd /etc/nginx/sites-available

Создаём файл:

nano letunoff.ru

Конфигурация:

server {
	listen 80;
	server_name letunoff.ru www.letunoff.ru;
 
	# Портфолио (статический сайт)
	location / {
		root /var/www/portfolio;
		index index.html;
	}
 
	# Приложение
	location /onemate {
		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;
	}
}

Активация сайта

Создаём ссылку из sites-enabled:

ln -s /etc/nginx/sites-available/letunoff.ru /etc/nginx/sites-enabled/

Теперь Nginx будет использовать этот конфиг.

Создание тестовой страницы

Создаём директорию:

mkdir -p /var/www/portfolio

Создаём простой HTML:

echo "<h1>Портфолио в разработке</h1>" > /var/www/portfolio/index.html

Проверка конфигурации

Перед перезапуском проверяем синтаксис:

nginx -t

Если ошибок нет – перезапускаем:

systemctl restart nginx

🎯 Вывод

  • Nginx устанавливается через пакетный менеджер apt.
  • Конфиги сайтов хранятся в sites-available.
  • Активные сайты подключаются через ссылки в sites-enabled.
  • Через location можно направлять разные URL в разные приложения.
  • Перед перезапуском всегда нужно выполнять nginx -t.

🔗 Связано