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 — мы готовы помочь.
Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."