Nginx для начинающих: установка, настройка и основные команды

Админ
4 часа назад
0 комментария
Nginx для начинающих: установка, настройка и основные команды

Практически любой современный веб-сайт начинается с веб-сервера. Именно он принимает запросы пользователей, обрабатывает их и отдает страницы, изображения, файлы или API-ответы.

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

В этой статье разберем, что такое Nginx, как установить его на Ubuntu 24.04, создать первый виртуальный хост, настроить PHP и рассмотрим самые полезные команды для повседневной работы.


Что такое Nginx

Nginx (произносится как «Энджин-Икс») — это высокопроизводительный веб-сервер и обратный прокси-сервер (Reverse Proxy).

Основные задачи Nginx:

  • обслуживание веб-сайтов;

  • работа с HTTPS;

  • балансировка нагрузки;

  • обратное проксирование;

  • кэширование;

  • раздача статических файлов;

  • обработка PHP через PHP-FPM;

  • работа в качестве API Gateway.

Сегодня Nginx используется как небольшими личными сайтами, так и крупнейшими интернет-проектами.


Почему выбирают Nginx

Главные преимущества:

  • высокая скорость обработки запросов;

  • низкое потребление оперативной памяти;

  • отличная работа с большим количеством соединений;

  • встроенная поддержка Reverse Proxy;

  • простая конфигурация;

  • бесплатная лицензия;

  • большое сообщество.

Именно поэтому Nginx часто используется вместе с Laravel, WordPress, Bitrix, Docker и другими современными технологиями.


Установка Nginx на Ubuntu 24.04

Сначала обновите систему:

sudo apt update
sudo apt upgrade -y

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

sudo apt install nginx -y

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

nginx -v

Например:

nginx version: nginx/1.24.0

Проверка работы

После установки служба обычно запускается автоматически.

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

sudo systemctl status nginx

Если всё успешно, откройте в браузере IP-адрес вашего сервера.

Вы увидите стандартную страницу приветствия Nginx.


Открытие портов

Если используется UFW:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Проверить:

sudo ufw status

Структура каталогов Nginx

Основные директории:

/etc/nginx/

Основные файлы:

/etc/nginx/nginx.conf

Конфигурации сайтов:

/etc/nginx/sites-available/

Активные сайты:

/etc/nginx/sites-enabled/

Логи:

/var/log/nginx/

Стандартный каталог сайта:

/var/www/html/

Создание первого сайта

Создадим каталог проекта:

sudo mkdir -p /var/www/example.com/public

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

echo "<h1>My first Nginx site</h1>" | sudo tee /var/www/example.com/public/index.html

Создание Virtual Host

Создаем конфигурацию:

sudo nano /etc/nginx/sites-available/example.com

Добавьте:

server {

    listen 80;

    server_name example.com www.example.com;

    root /var/www/example.com/public;

    index index.html index.php;

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

}

Сохраняем файл.


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

Создаем символическую ссылку:

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

Проверяем конфигурацию:

sudo nginx -t

Если ошибок нет:

syntax is ok
test is successful

Перезапускаем сервер:

sudo systemctl reload nginx

Подключение PHP

Для Laravel и большинства PHP-проектов используется PHP-FPM.

Установим PHP:

sudo apt install php8.4-fpm

Добавим обработку PHP:

location ~ \.php$ {

    include snippets/fastcgi-php.conf;

    fastcgi_pass unix:/run/php/php8.4-fpm.sock;

}

После изменения конфигурации:

sudo nginx -t
sudo systemctl reload nginx

Основные команды Nginx

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

sudo nginx -t

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


Запустить сервер

sudo systemctl start nginx

Остановить сервер

sudo systemctl stop nginx

Перезапустить

sudo systemctl restart nginx

Перечитать конфигурацию

sudo systemctl reload nginx

В отличие от restart, пользователи практически не заметят перезагрузку.


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

sudo systemctl status nginx

Включить автозапуск

sudo systemctl enable nginx

Отключить автозапуск

sudo systemctl disable nginx

Просмотр логов

Журнал запросов:

tail -f /var/log/nginx/access.log

Ошибки:

tail -f /var/log/nginx/error.log

Через systemd:

journalctl -u nginx -f

Reverse Proxy

Одно из самых популярных применений Nginx — проксирование запросов.

Например:

server {

    listen 80;

    server_name api.example.com;

    location / {

        proxy_pass http://127.0.0.1:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

}

Так обычно публикуют приложения на Node.js, Go, Python, Docker и панели управления VPN.


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

Самый простой способ — использовать Let's Encrypt.

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

sudo apt install certbot python3-certbot-nginx

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

sudo certbot --nginx

Certbot автоматически:

  • выпустит сертификат;

  • настроит HTTPS;

  • добавит автоматическое продление.


Частые ошибки

Ошибка синтаксиса

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

sudo nginx -t

Порт 80 уже занят

Посмотреть процесс:

sudo ss -tulpn | grep :80

Ошибка 502 Bad Gateway

Обычно означает:

  • не запущен PHP-FPM;

  • неверно указан сокет;

  • приложение недоступно.

Проверьте:

sudo systemctl status php8.4-fpm

Ошибка 403 Forbidden

Проверьте:

  • права на каталог;

  • директиву root;

  • владельца файлов;

  • наличие файла index.php или index.html.


Ошибка 404

Чаще всего причина:

  • неправильный путь root;

  • отсутствует файл;

  • ошибка в директиве try_files.


Полезные советы

Чтобы сервер работал стабильно:

  • всегда проверяйте конфигурацию командой nginx -t;

  • используйте reload, а не restart, если меняли только настройки;

  • регулярно просматривайте журналы ошибок;

  • храните конфигурации сайтов в системе контроля версий;

  • не редактируйте nginx.conf без необходимости — создавайте отдельные файлы виртуальных хостов.


Заключение

Nginx — это мощный, быстрый и надежный веб-сервер, который подходит как для небольших сайтов, так и для высоконагруженных проектов. Он отлично интегрируется с PHP, Laravel, Docker, Node.js и другими современными технологиями.

Освоив базовые команды, настройку виртуальных хостов и работу с логами, вы сможете уверенно администрировать собственные сайты и серверы. В дальнейшем стоит изучить более продвинутые возможности Nginx: балансировку нагрузки, кэширование, HTTP/3, WebSocket, настройку Reverse Proxy и оптимизацию производительности.

Понравилась статья? Поделитесь:

💬 Комментарии 0

Оставить комментарий

Пока нет комментариев.

Будьте первым, кто оставит своё мнение!