Как установить и настроить Nginx на Ubuntu — полное руководство

    Команда Simple-Server
    12.03.2026
    12 мин

    Введение

    Nginx — это высокопроизводительный веб-сервер и обратный прокси-сервер, который используется миллионами сайтов по всему миру. Благодаря асинхронной архитектуре Nginx способен обрабатывать тысячи одновременных подключений при минимальном потреблении ресурсов.

    В этом руководстве мы рассмотрим полный процесс установки, настройки и оптимизации Nginx на Ubuntu.

    Установка Nginx

    Обновление системы

    sudo apt update && sudo apt upgrade -y

    Установка пакета Nginx

    sudo apt install nginx -y

    Запуск и автозагрузка

    sudo systemctl start nginx sudo systemctl enable nginx

    Проверка статуса

    sudo systemctl status nginx

    Откройте в браузере http://your_server_ip — вы увидите стандартную страницу приветствия Nginx.

    Основные файлы и директории

    ПутьНазначение
    /etc/nginx/nginx.confГлавный конфигурационный файл
    /etc/nginx/sites-available/Конфигурации сайтов (доступные)
    /etc/nginx/sites-enabled/Конфигурации сайтов (активные)
    /var/www/html/Корневая директория по умолчанию
    /var/log/nginx/Логи доступа и ошибок

    Настройка виртуального хоста

    Создание директории для сайта

    sudo mkdir -p /var/www/mysite.ru/html sudo chown -R $USER:$USER /var/www/mysite.ru/html

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

    nano /var/www/mysite.ru/html/index.html
    <!DOCTYPE html> <html> <head><title>Мой сайт</title></head> <body><h1>Добро пожаловать на mysite.ru!</h1></body> </html>

    Создание конфигурации виртуального хоста

    sudo nano /etc/nginx/sites-available/mysite.ru
    server { ```bash listen 80; listen [::]:80; server_name mysite.ru www.mysite.ru; root /var/www/mysite.ru/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } # Логи access_log /var/log/nginx/mysite.ru.access.log; error_log /var/log/nginx/mysite.ru.error.log;

    }

    ## Активация виртуального хоста ```bash sudo ln -s /etc/nginx/sites-available/mysite.ru /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx

    Установка SSL-сертификата (Let's Encrypt)

    Установка Certbot

    sudo apt install certbot python3-certbot-nginx -y

    Получение сертификата

    sudo certbot --nginx -d mysite.ru -d www.mysite.ru

    Автоматическое продление

    sudo certbot renew --dry-run

    Certbot автоматически добавляет задание в cron для продления сертификатов.

    Настройка Nginx как обратного прокси

    Для проксирования запросов на приложение (например, Node.js на порту 3000):

    server { ```bash listen 80; server_name app.mysite.ru; 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_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; }

    }

    # Оптимизация производительности Отредактируйте `/etc/nginx/nginx.conf`: ```nginx # Количество рабочих процессов (по числу ядер CPU) worker_processes auto; events { ```bash worker_connections 2048; multi_accept on; use epoll;

    }

    http {

    # Сжатие gzip on; gzip_vary on; gzip_min_length 1024; gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript image/svg+xml; # Кэширование статики open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; # Буферы client_body_buffer_size 16K; client_header_buffer_size 1k; client_max_body_size 8m; large_client_header_buffers 4 8k; # Таймауты client_body_timeout 12; client_header_timeout 12; keepalive_timeout 15; send_timeout 10;

    }

    # Кэширование статических файлов Добавьте в блок `server`: ```nginx location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|svg)$ { ```bash expires 30d; add_header Cache-Control "public, immutable"; access_log off;

    }

    # Базовая защита ```nginx # Скрытие версии Nginx server_tokens off; # Защита от clickjacking add_header X-Frame-Options "SAMEORIGIN" always; # Защита от XSS add_header X-XSS-Protection "1; mode=block" always; # Запрет MIME-sniffing add_header X-Content-Type-Options "nosniff" always; # Ограничение запросов (защита от DDoS) limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; location / { ```bash limit_req zone=one burst=20 nodelay;

    }

    # Полезные команды ```bash # Проверка конфигурации sudo nginx -t # Перезагрузка без остановки sudo nginx -s reload # Просмотр логов в реальном времени sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log # Статистика активных подключений curl http://localhost/nginx_status

    Заключение

    Nginx — мощный и гибкий веб-сервер, который отлично подходит как для небольших сайтов, так и для высоконагруженных проектов. Правильная настройка виртуальных хостов, SSL, кэширования и защиты обеспечит стабильную и безопасную работу ваших веб-приложений.

    💡 Совет: Для максимальной производительности Nginx используйте VPS с NVMe-дисками и достаточным объёмом RAM. Выбрать VPS для Nginx →

    VPS для Nginx

    Быстрые VPS с NVMe для вашего веб-сервера Nginx.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны