Цель урока: Сделать первый и самый важный шаг в создании веб-хостинга - установить, настроить и запустить веб-сервер Nginx. Мы разберем его базовую конфигурацию, поймем, где лежат файлы сайтов, и научимся безопасно управлять его работой.

Часть 1: Теория. Что такое веб-сервер и почему Nginx?

Представьте, что ваш VDS - это здание ресторана.

Веб-сервер - это администратор и официант. Его работа - стоять у входа (слушать порты 80 и 443), принимать "заказы" от посетителей (браузеров) и выносить им "блюда" (веб-страницы).

Почему Nginx?

  • Скорость: Он невероятно быстрый и может обслуживать тысячи посетителей, потребляя очень мало ресурсов.

  • Надежность: Nginx славится своей стабильностью.

  • Популярность: Это самый популярный веб-сервер в мире, для него существует огромное количество документации и готовых решений.

Часть 2: Практика. Установка и проверка Nginx

Важное напоминание о sudo:
Мы договорились работать от имени root для простоты. Если вы работаете под обычным пользователем (например, admin), не забывайте добавлять sudo в начало каждой команды, которая изменяет систему (например, sudo apt updatesudo 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: Вносим изменения и видим "живую магию"

Давайте изменим заголовок.

  1. Откройте файл в редакторе: nano /var/www/html/index.html

  2. Найдите строку <h1>...</h1> и измените текст, например, на <h1>Linux - это мощь!</h1>.

  3. Сохраните файл (Ctrl+OEnter) и выйдите (Ctrl+X).

Ничего не перезапуская на сервере, просто обновите страницу в вашем браузере. Вы мгновенно увидите новый заголовок!

Это показывает, что для изменения содержимого сайта (HTML, картинки) перезапускать Nginx не нужно. Он нужен только при изменении правил работы (конфигурационных файлов).

Часть 5: Управление службой Nginx и безопасное редактирование

Это самый важный раздел. Одна опечатка в конфиге может "положить" ваш сайт.

  • systemctl reload nginx: Перечитать конфиги без остановки. Используйте эту команду в 99% случаев.

  • nginx -t: Проверить синтаксис конфигов. ВСЕГДА выполняйте эту команду перед reload.

Практикум по ошибкам:

Давайте намеренно сломаем конфиг и посмотрим, что произойдет.

  1. Откройте главный конфиг: nano /etc/nginx/nginx.conf

  2. Найдите любую строку, заканчивающуюся на ; и удалите точку с запятой.

  3. Сохраните файл и запустите проверку:

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

Система точно указала, в каком файле, на какой строке и в чем проблема!

Что делать?

  1. Ни в коем случае не перезапускайте Nginx!

  2. Откройте файл снова, верните на место точку с запятой, сохраните.

  3. Снова выполните nginx -t . Убедитесь, что теперь вывод ...test is successful.

  4. И только теперь можно безопасно перезагрузить конфигурацию: 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

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)