// ssd vps

Как установить и настроить Nginx на VPS Linux: полное руководство для производительного веб-сервера

September 16, 2026 · by Alex M.

Как установить и настроить Nginx на VPS Linux: полное руководство для производительного веб-сервера

Nginx стал одним из самых популярных веб-серверов в мире — и причины очевидны. Низкое потребление памяти, способность обрабатывать тысячи одновременных подключений и гибкость конфигурации делают его идеальным выбором для любого VPS SSD или VPS NVMe. В этом руководстве мы пройдём весь путь: от установки до настройки виртуальных хостов с HTTPS и оптимизации производительности.

Что такое Nginx и почему стоит его использовать?

Nginx (произносится «engine-x») — это веб-сервер с открытым исходным кодом, созданный Игорем Сысоевым в 2004 году. В отличие от Apache, который создаёт новый поток или процесс для каждого соединения, Nginx использует событийно-ориентированную архитектуру — что делает его чрезвычайно эффективным при высоком трафике.

Основные преимущества:
- Отличная производительность при высоком параллельном трафике
- Низкое потребление RAM и CPU
- Встроенная поддержка reverse proxy, балансировщика нагрузки и HTTP-кэша
- Гибкая конфигурация с понятным синтаксисом
- Активная поддержка и большое сообщество

Если у вас есть VPS с выделенными ресурсами и вы хотите запускать PHP, Node.js, Python-приложения или раздавать статические файлы с максимальной скоростью, Nginx — правильный выбор.

Предварительные требования

Перед началом убедитесь, что у вас есть:
- VPS с Ubuntu 22.04 / Debian 12 (руководство совместимо с обеими системами)
- Root-доступ или пользователь с правами sudo
- Домен, указывающий на IP-адрес сервера (для настройки HTTPS)
- Открытые порты 80 и 443 в брандмауэре

Если у вас ещё нет сервера, вы можете быстро заказать VPS NVMe у CLIQHOST с предустановленной Ubuntu и немедленным доступом по SSH.

Шаг 1: Обновление системы и установка Nginx

Первый шаг — всегда обновление списка пакетов:

sudo apt update && sudo apt upgrade -y

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

sudo apt install nginx -y

Проверьте статус сервиса:

sudo systemctl status nginx

Должно отображаться active (running). Если нет, запустите сервис вручную:

sudo systemctl start nginx
sudo systemctl enable nginx

Проверьте установленную версию:

nginx -v

Откройте http://IP_СЕРВЕРА в браузере — вы увидите стандартную страницу Nginx, подтверждающую успешную установку.

Шаг 2: Структура конфигурационных файлов Nginx

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

/etc/nginx/
├── nginx.conf          # Глобальная конфигурация
├── sites-available/    # Доступные конфигурации виртуальных хостов
├── sites-enabled/      # Символические ссылки на активные конфигурации
├── conf.d/             # Дополнительные конфигурации
├── snippets/           # Переиспользуемые фрагменты конфигурации
└── modules-enabled/    # Загруженные модули

Главный файл /etc/nginx/nginx.conf содержит глобальные директивы. Не изменяйте его напрямую для виртуальных хостов — создавайте отдельные файлы в sites-available/.

Шаг 3: Настройка виртуального хоста (Server Block)

«Server block» в Nginx — эквивалент VirtualHost в Apache. Позволяет обслуживать несколько сайтов с одного сервера.

Создайте директорию для вашего сайта:

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com

Создайте тестовую страницу:

nano /var/www/example.com/html/index.html
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Добро пожаловать на example.com!</title>
</head>
<body>
    <h1>Nginx работает корректно!</h1>
</body>
</html>

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

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    # Отдельные логи для каждого сайта
    access_log /var/log/nginx/example.com.access.log;
    error_log  /var/log/nginx/example.com.error.log;
}

Активируйте сайт, создав символическую ссылку:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Проверьте синтаксис конфигурации:

sudo nginx -t

Если всё в порядке, перезагрузите Nginx:

sudo systemctl reload nginx

Шаг 4: Настройка HTTPS с Let's Encrypt (Certbot)

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

Установите Certbot и плагин для Nginx:

sudo apt install certbot python3-certbot-nginx -y

Получите SSL-сертификат:

sudo certbot --nginx -d example.com -d www.example.com

Certbot запросит email и автоматически изменит конфигурацию Nginx для активации HTTPS и автоматического редиректа с HTTP на HTTPS.

Проверьте автоматическое обновление:

sudo systemctl status certbot.timer

Протестируйте обновление без реального выпуска сертификата:

sudo certbot renew --dry-run

Если вам нужен коммерческий сертификат с проверкой OV или EV, CLIQHOST предлагает широкий выбор SSL-сертификатов для интернет-магазинов и бизнес-приложений.

Шаг 5: Настройка Nginx для PHP-приложений (PHP-FPM)

Nginx не обрабатывает PHP нативно — ему нужен PHP-FPM (FastCGI Process Manager).

Установите PHP-FPM:

sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml -y

Измените server block для обработки PHP-файлов:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Эта конфигурация подходит для WordPress, Joomla и любых PHP-приложений. Если вы предпочитаете готовое решение для WordPress, ознакомьтесь с нашим WordPress хостингом с предварительно настроенным Nginx.

Шаг 6: Оптимизация производительности Nginx

Стандартные настройки Nginx хороши, но их можно значительно улучшить для выделенного VPS.

Настройка worker processes и connections

Откройте /etc/nginx/nginx.conf и измените:

worker_processes auto;  # Автоматически определяет количество CPU

events {
    worker_connections 1024;  # Соединений на воркер (увеличьте до 2048+ при высоком трафике)
    use epoll;                # Наиболее эффективный I/O мультиплексор для Linux
    multi_accept on;          # Принимает несколько соединений одновременно
}

Включение сжатия Gzip

http {
    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_min_length 1000;
    gzip_types
        text/plain
        text/css
        text/javascript
        application/json
        application/javascript
        application/xml
        image/svg+xml;
}

Кэширование статических файлов

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|svg)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
    access_log off;
}

Ограничение размера запросов (безопасность)

client_max_body_size 20M;
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

Шаг 7: Защита Nginx

Веб-сервер, открытый в интернет, требует дополнительных мер безопасности.

Скрытие версии Nginx

В nginx.conf, в блоке http {}:

server_tokens off;

HTTP-заголовки безопасности

Добавьте в server block:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Блокировка доступа к чувствительным файлам

# Блокируем скрытые файлы (.htaccess, .env и др.)
location ~ /\. {
    deny all;
    return 404;
}

# Блокируем прямой доступ к файлам конфигурации
location ~* \.(conf|log|bak|sql|zip)$ {
    deny all;
    return 404;
}

Ограничение частоты запросов (Rate Limiting)

Защита точек входа от brute-force атак:

http {
    limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;
}

server {
    location /wp-login.php {
        limit_req zone=login burst=3 nodelay;
    }
}

Шаг 8: Основные команды для ежедневного администрирования

# Проверить конфигурацию без перезапуска
sudo nginx -t

# Перезагрузить конфигурацию (без downtime)
sudo systemctl reload nginx

# Полный перезапуск сервиса
sudo systemctl restart nginx

# Просмотр логов в реальном времени
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log

# Проверить, какие порты слушает Nginx
sudo ss -tlnp | grep nginx

# Список активных сайтов
ls -la /etc/nginx/sites-enabled/

Шаг 9: Nginx как Reverse Proxy

Одно из наиболее распространённых применений Nginx на VPS — reverse proxy, перенаправляющий HTTP-запросы к локально работающему приложению (Node.js, Python, Go и т.д.).

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

Эта конфигурация незаменима при работе с контейнерными приложениями. Больше материалов по теме DevOps и серверного администрирования вы найдёте в блоге CLIQHOST.

Быстрое решение распространённых ошибок

Ошибка Вероятная причина Решение
502 Bad Gateway PHP-FPM не запущен sudo systemctl restart php8.2-fpm
403 Forbidden Неверные права на файлы sudo chmod -R 755 /var/www/site/
nginx: [emerg] bind() to 0.0.0.0:80 failed Порт 80 занят другим процессом sudo lsof -i :80 и остановите процесс
504 Gateway Timeout Backend-приложение не отвечает вовремя Увеличьте proxy_read_timeout
Конфигурация не применяется Забыли nginx -t и reload Всегда тестируйте и перезагружайте

Заключение

Nginx — это надёжный, эффективный и гибкий production-веб-сервер, подходящий как для небольших сайтов, так и для enterprise-приложений с высоким трафиком. С конфигурациями из этого руководства у вас будет надёжная основа: несколько виртуальных хостов, автоматический HTTPS, поддержка PHP, базовая безопасность и оптимизация производительности.

Для достижения максимальной производительности Nginx лучше всего раскрывается на SSD или NVMe-инфраструктуре. Если вы хотите максимальной скорости без забот об администрировании сервера, команда CLIQHOST предлагает VPS SSD и VPS NVMe с полным root-доступом, а также услуги администрирования серверов — если вы хотите сосредоточиться только на своём приложении.

Есть вопросы или нужна помощь с настройкой сервера? Свяжитесь с командой CLIQHOST — мы готовы помочь.

SHARE
// Что говорят наши клиенты

Что говорят наши клиенты

Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.

★★★★★

"Перенесли интернет-магазин с зарубежного хостинга — разница огромная: страницы открываются мгновенно, а поддержка отвечает за минуты, на румынском."

AM
Andrei M.
Владелец eCommerce · Кишинёв
★★★★★

"Перенесли 12 клиентских сайтов на CLIQHOST. Бесплатная миграция, нулевой даунтайм, а настройка cPanel — именно то, что нужно нашей команде. Очень рекомендую."

EV
Elena V.
Веб-агентство · Бельцы
★★★★★

"Наш VPS NVMe спокойно держит пики трафика. Полный root, локальный дата-центр и оплата в MDL — всё, что мы хотели от провайдера."

DC
Dmitri C.
Основатель SaaS · Кишинёв