Такая ошибка возникает при попытке назначить для прослушивания IP, который в данный момент недоступен (например, при наличии виртуального IP, назначаемого с помощью keepalived или vrrpd).
Для того, чтобы nginx не ругался на несуществующий IP, нужно разрешить бинд нелокальных адресов. Для этого в файле /etc/sysctl.conf прописываем:
net.ipv4.ip_nonlocal_bind = 1
После чего перезагружаем конфиг sysctl:
sysctl -p /etc/sysctl.conf
Спустя три года от этого коммента я говорю тебе спасибо:) в полвторого ночи, после внезапной остановки nginx!
Да не за что 🙂
Виртуальный айпишник перешел на другой сервер?)
сертификаты Lets Enscrypt отвалились 🙂 и за ними nginx
Спасибо большое, уфф, я уже весь инет перерыл
Первая ссылка в Google выдаёт тот же совет но с ipv6. Добавил в конфиг обе строки. Но у меня, естественно, ipv4. Так что первая статья не помогла.
Забавно так. Перезагружаешь сервак. Все такие: упали, отжались, поднялись. А nginx такой: «не-не-не, ты чет там нахимичил, возвращай, как было.» А я такой в ТП: «Вы чет там нахимичили, возвращайте как было.» А ТП такая: «без проблем, плати 15 евро.» А я такой, не-не-не. «Ок Google! Там что-то нахимичили, как быть?». И тут вы со своим советом)
спасибо тебе, добрый Человек!
Ты лучший, спасибо!