
Цель урока: Сделать первый и самый важный шаг в создании веб-хостинга - установить, настроить и запустить веб-сервер Nginx. Мы разберем его базовую конфигурацию, поймем, где лежат файлы сайтов, и научимся безопасно управлять его работой.
Часть 1: Теория. Что такое веб-сервер и почему Nginx?
Представьте, что ваш VDS - это здание ресторана.
Веб-сервер - это администратор и официант. Его работа - стоять у входа (слушать порты 80 и 443), принимать "заказы" от посетителей (браузеров) и выносить им "блюда" (веб-страницы).
Почему Nginx?
-
Скорость: Он невероятно быстрый и может обслуживать тысячи посетителей, потребляя очень мало ресурсов.
-
Надежность: Nginx славится своей стабильностью.
-
Популярность: Это самый популярный веб-сервер в мире, для него существует огромное количество документации и готовых решений.
Часть 2: Практика. Установка и проверка Nginx
Важное напоминание о sudo:
Мы договорились работать от имени root для простоты. Если вы работаете под обычным пользователем (например, admin), не забывайте добавлять sudo в начало каждой команды, которая изменяет систему (например, sudo apt update, sudo systemctl status nginx).
Шаг 1: Установка пакета
apt update
apt install -y nginx
Шаг 2: Проверка статуса службы
Убедимся, что наш "официант" вышел на работу.
systemctl status nginx
Вы должны увидеть Active: active (running) (зеленая надпись). Это означает, что все в порядке.

Шаг 3: Настройка файервола и проверка в браузере
Nginx слушает порт 80 (HTTP). Откроем его в ufw.
# Разрешаем трафик по профилю 'Nginx HTTP'
ufw allow 'Nginx HTTP'
# Проверяем, что правило добавлено
ufw status
Важное примечание: Если команда ufw status показывает Status: inactive, это не ошибка. Это означает, что ваш файервол просто выключен. В этом случае доступ к порту 80 уже открыт.
Теперь откройте браузер на вашем компьютере и введите IP-адрес вашего сервера: http://ВАШ_IP_АДРЕС. Вы должны увидеть страницу "Welcome to nginx!".

Часть 3: Структура конфигурации Nginx
Понимание структуры каталогов - это ключ к управлению сервером.
-
/etc/nginx/nginx.conf: Глобальный файл. Мы его почти не трогаем.
-
/etc/nginx/sites-available/: "Меню" всех возможных сайтов. Здесь мы создаем и храним конфигурационные файлы для каждого нашего домена.
-
/etc/nginx/sites-enabled/: "Активное меню" на сегодня. Nginx смотрит только сюда. Чтобы "включить" сайт, мы создаем здесь символическую ссылку на его конфиг из sites-available.
Аналогия с симлинками:
Представьте, что в sites-available у вас лежат оригиналы меню для "Завтрака", "Обеда" и "Ужина". А sites-enabled - это доска, на которую вы вешаете копию меню, актуального в данный момент. Чтобы с "Обеда" переключиться на "Ужин", вы не переписываете меню, а просто снимаете с доски копию "Обеда" и вешаете копию "Ужина". Это быстро, удобно и безопасно. Так же и с сайтами: включение и выключение сайта сводится к созданию и удалению симлинка.
-
/var/www/html: Папка с файлами для сайта по умолчанию.
Часть 4: Практика. Создаем и изменяем нашу веб-страницу
Шаг 1: Создаем свою страницу
Заменим стандартную страницу Nginx на свою.
cat > /var/www/html/index.html <<EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Мой первый сайт!</title>
</head>
<body>
<h1>Привет от моего сервера на Nginx!</h1>
<p>Это мой первый сайт. Урок 41.</p>
</body>
</html>
EOF
Обновите страницу в браузере (http://ВАШ_IP_АДРЕС), и вы увидите ваш новый текст.

Шаг 2: Вносим изменения и видим "живую магию"
Давайте изменим заголовок.
-
Откройте файл в редакторе:
nano /var/www/html/index.html -
Найдите строку <h1>...</h1> и измените текст, например, на <h1>Linux - это мощь!</h1>.
-
Сохраните файл (Ctrl+O, Enter) и выйдите (Ctrl+X).
Ничего не перезапуская на сервере, просто обновите страницу в вашем браузере. Вы мгновенно увидите новый заголовок!

Это показывает, что для изменения содержимого сайта (HTML, картинки) перезапускать Nginx не нужно. Он нужен только при изменении правил работы (конфигурационных файлов).
Часть 5: Управление службой Nginx и безопасное редактирование
Это самый важный раздел. Одна опечатка в конфиге может "положить" ваш сайт.
-
systemctl reload nginx: Перечитать конфиги без остановки. Используйте эту команду в 99% случаев.
-
nginx -t: Проверить синтаксис конфигов. ВСЕГДА выполняйте эту команду перед reload.
Практикум по ошибкам:
Давайте намеренно сломаем конфиг и посмотрим, что произойдет.
-
Откройте главный конфиг:
nano /etc/nginx/nginx.conf -
Найдите любую строку, заканчивающуюся на ; и удалите точку с запятой.
-
Сохраните файл и запустите проверку:
nginx -t
Вы увидите ошибку!
nginx: [emerg] directive "include" is not terminated by ";" in /etc/nginx/nginx.conf:21
nginx: configuration file /etc/nginx/nginx.conf test failed
Система точно указала, в каком файле, на какой строке и в чем проблема!
Что делать?
-
Ни в коем случае не перезапускайте Nginx!
-
Откройте файл снова, верните на место точку с запятой, сохраните.
-
Снова выполните
nginx -t. Убедитесь, что теперь вывод ...test is successful. -
И только теперь можно безопасно перезагрузить конфигурацию:
systemctl reload nginx.
Часть 6: Что делать, если что-то пошло не так? (Типичные ошибки)
Проблема: Страница в браузере не открывается (ошибка "Не удается получить доступ к сайту").
-
Решение 1: Проверьте файервол:
ufw status. Убедитесь, что порт 80 (или Nginx HTTP) находится в статусе ALLOW. -
Решение 2: Проверьте, запущен ли Nginx:
systemctl status nginx. Если он не active (running), смотрите следующую проблему.
Проблема: Служба Nginx не запускается (статус failed).
-
Решение 1: Первым делом - проверка синтаксиса:
nginx -t. Исправьте ошибки, которые он покажет. -
Решение 2: Проверьте, не занят ли порт 80 другим процессом:
ss -tulpn | grep :80. Если какая-то другая программа (например, apache2) его использует, ее нужно остановить. -
Решение 3: Посмотрите детальные логи ошибок:
journalctl -u nginx -e. Команда -e сразу переместит вас в конец лога, где и будет описание последней ошибки.
Часть 7: Шпаргалка команд
| Команда | Описание |
| apt install nginx | Установить Nginx. |
| systemctl status nginx | Проверить, запущен ли Nginx. |
| ufw allow 'Nginx HTTP' | Открыть порт 80 в файерволе. |
| nginx -t | Проверить конфиги на ошибки (важнейшая команда!). |
| systemctl reload nginx | Применить изменения в конфигах без остановки сервера. |
| systemctl restart nginx | Полностью перезапустить сервер. |
Часть 8: Заключение
Поздравляю! Вы не просто установили веб-сервер, вы научились им безопасно управлять. Вы поняли структуру его конфигов, научились создавать и "вживую" изменять страницы и, что самое главное, освоили процедуру безопасного внесения изменений: изменил -> проверил (nginx -t) -> применил (reload). Этот навык - основа стабильной работы любого веб-сервера.
На следующем, 42-м уроке, мы научимся настраивать виртуальные хосты, что позволит нашему единственному серверу Nginx обслуживать несколько разных сайтов с разными доменными именами.
Перейти к просмотру - УРОК №42.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

