Nginx: проверка конфигурации и безопасная перезагрузка
Правильная последовательность проверки конфигурации nginx перед перезагрузкой. Команды nginx -t, systemctl reload nginx и обработка ошибок.
Правильная последовательность проверки конфигурации nginx перед перезагрузкой. Никогда не делайте reload без проверки — это может привести к остановке сервера.
Базовая проверка
# Проверка синтаксиса конфигурации
sudo nginx -t
# Если проверка прошла успешно, перезагрузите конфигурацию
sudo systemctl reload nginx
Безопасная перезагрузка с проверкой
#!/bin/bash
# Проверка и перезагрузка nginx
if sudo nginx -t; then
echo "✅ Конфигурация корректна, перезагружаю nginx..."
sudo systemctl reload nginx
echo "✅ Nginx перезагружен"
else
echo "❌ Ошибка в конфигурации! Nginx не перезагружен."
exit 1
fi
Проверка с выводом ошибок
# Подробный вывод ошибок
sudo nginx -t 2>&1
# Сохранение вывода в файл
sudo nginx -t > /tmp/nginx-test.log 2>&1
cat /tmp/nginx-test.log
Альтернативные команды перезагрузки
# Через systemctl (рекомендуется)
sudo systemctl reload nginx
# Через nginx напрямую (если systemctl недоступен)
sudo nginx -s reload
# Полный перезапуск (используйте только при необходимости)
sudo systemctl restart nginx
Проверка статуса после перезагрузки
# Проверка статуса сервиса
sudo systemctl status nginx
# Проверка, что nginx слушает порты
sudo netstat -tlnp | grep nginx
# или
sudo ss -tlnp | grep nginx
Usage:
Всегда проверяйте конфигурацию перед reload: nginx -t. Используйте reload вместо restart — это не прерывает активные соединения.
Notes:
⚠️ reload перечитывает конфигурацию без остановки сервера. restart останавливает и запускает заново — это прерывает активные соединения. Используйте reload для применения изменений без простоя.