Команды для проверки валидности конфигов Apache, Nginx и SSH

222 прочитали
Одним из самых первых с чем встречается новичок в системном администрировании при работе с клиентским сервером это настройка SSH и работа с веб-серверами, такими как Apache или Nginx.

Одним из самых первых с чем встречается новичок в системном администрировании при работе с клиентским сервером это настройка SSH и работа с веб-серверами, такими как Apache или Nginx. Полностью избегать ошибок и проблем на начальном этапе точно не получится, но можно свести риски к минимуму проверяя после изменений конфигурационные файлы до перезапуска службы. Как это сделать расскажу далее.

Другие материалы для новичков вы можете найти в соответствующих разделах на канале.

Изначальная конфигурация

У меня в виртуальной машине находится сервер CentOS 7, на котором установлены Apache, Nginx и имеется SSH. Конфигурационные файлы стандартные, но это не играет роли, главное показать то, как можно их проверять встроенными средствами самих сервисов.

Проверяем конфигурационный файл SSH на ошибки

Начнем с проверки SSH-конфига. В CentOS 7 конфигурационный файл находится по пути /etc/ssh/sshd_config. Откроем его в текстовом редакторе nano и изменим что-нибудь с явной ошибкой.

Делаем в конфиге SSH ошибку
Делаем в конфиге SSH ошибку

Как видно из презентации, в самом конце конфигурационного файла я указал строку This error true.

Если теперь попробовать перезапустить ssh, то ничего хорошего из этого не получится, поверьте. Но можно заранее проверить конфиг, используя следующую команду:

sshd -t

Проверяем конфиг SSH на ошибки
Проверяем конфиг SSH на ошибки

«Выхлоп» указал нам на то, что в 140 строке содержится ошибочный аргумент и конфигурационный файл неверен. Запустим теперь редактор vim, включим в нем нумерацию строк, найдем 140-ую и уберем ее.

Убираем ошибку и проверяем конфиг вновь
Убираем ошибку и проверяем конфиг вновь

Запустив после исправления команду sshd -t мы убеждаемся, что ошибок больше нет и последующий рестарт ssh не приведет ни к чему страшному.

Если до читали до этого момента, то настало время подписаться на канал и его обновления в Телеграме. Так вы сможете получать уведомления о выходе новых, интересных и полезных заметок.

Проверяем конфигурационный файл Nginx на ошибки

Для веб-сервера Nginx помимо основного (системного) конфига называемого nginx.conf может существовать большое количество других конфигурационных файлов, которые будут загружаться перед основным. Местоположение конфигурационных файлов в Nginx может быть различным, по-умолчанию в CentOS это папка /etc/nginx/conf.d. Там я положил обычный конфигурационный файл под названием test.ru.conf. Давайте посмотрим на его содержимое.

Смотрим на конфиг Nginx
Смотрим на конфиг Nginx

Казалось бы обычный файл, но я забыл поставить точку с запятой после директивы root, которая указывает серверу местоположение основных файлов сайта. И если сейчас попробовать перезапустить Nginx, то получим ошибку и сервер просто-напросто не запустится.

Падение Nginx
Падение Nginx

Этого можно было избежать, если вначале использовать следующую команду для проверки конфига:

nginx -t

Узнаем где ошибка, исправляем, проверяем снова и рестартуем веб-сервер
Узнаем где ошибка, исправляем, проверяем снова и рестартуем веб-сервер

Опять-таки, нам будет показана суть ошибки и строка, где она содержится. Открываем редактор, исправляем ошибку, проверяем конфиг еще раз и после рестартуем Nginx.

Вот так просто и без лишней нервотрепки мы можем избавить себя от проблем с падением сервера Nginx и следовательно от недоступности веб-сервисов клиента.

Проверяем конфигурационный файл Apache на ошибки

Конфигурационные файлы Apache в CentOS 7 по-умолчанию хранятся по пути /etc/httpd/conf.d. Опять-таки там я разместил обычный конфигурационный файл test.ru.conf. Взглянем на него.

Смотрим конфиг Apache
Смотрим конфиг Apache

Казалось бы все верно и можно рестартовать Apache, что мы и сделаем.

Падение Apache
Падение Apache

Внезапно ошибка, сервер не запустился. Чтобы такого не было нужно использовать следующую команду:

apachectl configtest

Исправляем ошибку, проверяем конфиг, перезапускаем сервер
Исправляем ошибку, проверяем конфиг, перезапускаем сервер

Запустим ее и увидим, что какие-то неполадки с директивой VirtualHost. Вернее при создании конфига я указал VitrualHost в начале и конце конфига, что и вызвало ошибку. Нужно это исправить и перезапустить сервер.

Подведем итоги

Даже если вы уверены на 200% в том, что конфигурационный файл написан без ошибок, то использование этих команд поможет вам сэкономить нервы, а клиентам деньги. Согласитесь, что их ввод не занимает много времени, но при этом как-раз именно время они и экономят. Особенно, если вы новичок, для которого ошибки в самом начале естественны.

Думаю, что материал окажется полезным для тех, кто только начинает свой путь в системном администрировании и изучении Linux-дистрибутивов. Если он уже принес вам пользу, то я только рад.