September 16, 2026 · by Alex M.
Nginx стал одним из самых популярных веб-серверов в мире — и причины очевидны. Низкое потребление памяти, способность обрабатывать тысячи одновременных подключений и гибкость конфигурации делают его идеальным выбором для любого VPS SSD или VPS NVMe. В этом руководстве мы пройдём весь путь: от установки до настройки виртуальных хостов с HTTPS и оптимизации производительности.
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.
Первый шаг — всегда обновление списка пакетов:
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, подтверждающую успешную установку.
Перед любыми изменениями важно понять структуру директорий:
/etc/nginx/
├── nginx.conf # Глобальная конфигурация
├── sites-available/ # Доступные конфигурации виртуальных хостов
├── sites-enabled/ # Символические ссылки на активные конфигурации
├── conf.d/ # Дополнительные конфигурации
├── snippets/ # Переиспользуемые фрагменты конфигурации
└── modules-enabled/ # Загруженные модули
Главный файл /etc/nginx/nginx.conf содержит глобальные директивы. Не изменяйте его напрямую для виртуальных хостов — создавайте отдельные файлы в sites-available/.
«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
В 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-сертификатов для интернет-магазинов и бизнес-приложений.
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.
Стандартные настройки Nginx хороши, но их можно значительно улучшить для выделенного VPS.
Откройте /etc/nginx/nginx.conf и измените:
worker_processes auto; # Автоматически определяет количество CPU
events {
worker_connections 1024; # Соединений на воркер (увеличьте до 2048+ при высоком трафике)
use epoll; # Наиболее эффективный I/O мультиплексор для Linux
multi_accept on; # Принимает несколько соединений одновременно
}
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;
Веб-сервер, открытый в интернет, требует дополнительных мер безопасности.
В nginx.conf, в блоке http {}:
server_tokens off;
Добавьте в 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;
}
Защита точек входа от 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;
}
}
# Проверить конфигурацию без перезапуска
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/
Одно из наиболее распространённых применений 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 — мы готовы помочь.
Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.
"Перенесли интернет-магазин с зарубежного хостинга — разница огромная: страницы открываются мгновенно, а поддержка отвечает за минуты, на румынском."
"Перенесли 12 клиентских сайтов на CLIQHOST. Бесплатная миграция, нулевой даунтайм, а настройка cPanel — именно то, что нужно нашей команде. Очень рекомендую."
"Наш VPS NVMe спокойно держит пики трафика. Полный root, локальный дата-центр и оплата в MDL — всё, что мы хотели от провайдера."