Nginx – це високопродуктивний веб-сервер, який зазвичай використовується для обслуговування веб-сайтів, зворотного проксінгу та балансування навантаження. Якщо ви оновлюєте конфігураційні файли або застосовуєте патчі безпеки, вам часто потрібно перезавантажити або перезапустити Nginx. Цей посібник пояснює різницю між перезавантаженням і перезапуском, а також те, як безпечно виконати кожну дію на віртуальному або приватному сервері

Перезавантаження та перезапуск – в чому різниця?

ДіяОпис
ПерезавантажитиПлавно перезавантажує конфігурацію без знищення активних з’єднань. Бажано використовувати після редагування конфігурації.
ПерезапуститиПовністю зупиняє і перезапускає Nginx. Використовується для більш глибоких змін або повного перезавантаження.

Порада: Завжди запускайте тест конфігурації перед перезавантаженням, щоб уникнути простою через помилки.

Як протестувати конфігурацію Nginx

Перед перезавантаженням або перезапуском перевірте правильність конфігурації:

sudo nginx -t

Якщо все в порядку, ви побачите

nginx: синтаксис конфігураційного файлу /etc/nginx/nginx.conf в порядку  
nginx: перевірка конфігураційного файлу /etc/nginx/nginx.conf пройдена успішно

Як перезавантажити Nginx

Використовуйте це при зміні налаштувань в /etc/nginx/nginx.conf або додаванні/редагуванні віртуальних хостів.

В системах на основі systemd (Ubuntu 16.04, CentOS 7, Debian 9):

sudo systemctl перезавантажити nginx

На старих системах за допомогою init.d:

sudo service nginx reload

Це вказує Nginx перечитати конфігурацію без переривання поточних з’єднань.

Як перезапустити Nginx

Використовуйте цей параметр, коли Nginx не реагує на запити або після значних оновлень.

На системах з системою systemd:

sudo systemctl перезапустити nginx

У системах з init.d:

sudo service nginx restart

Зупиняє і запускає Nginx, таким чином перериваючи всі поточні сеанси. Використовуйте з обережністю на виробничих серверах.

За бажанням: Перезавантажити безпосередньо двійковими файлами nginx

Ви також можете відправити сигнал HUP вручну:

sudo kill -HUP $(cat /var/run/nginx.pid)

Це працює так само, як і перезавантаження, і може бути корисним у користувацьких скриптах.

Виправлення поширених несправностей

  • “nginx: [emerg] невідома директива…” – Ймовірно, ви зробили синтаксичну помилку. Запустіть nginx -t для налагодження.
  • Nginx не перезавантажується належним чином – Перевірте файли журналів:
sudo tail -n 50 /var/log/nginx/error.log

Висновок

Перезавантаження безпечне для живих серверів і має бути вашою опцією за замовчуванням після зміни конфігурації. Перезапуск корисний для повного скидання налаштувань або якщо Nginx працює нестабільно. У будь-якому випадку, завжди тестуйте конфігурацію перед застосуванням змін.