Skip to main content

Starting nginx: [emerg]: bind() to IP failed (99: Cannot assign requested address)

Такая ошибка возникает при попытке назначить для прослушивания IP, который в данный момент недоступен (например, при наличии виртуального IP, назначаемого с помощью keepalived или vrrpd).
Для того, чтобы nginx не ругался на несуществующий IP, нужно разрешить бинд нелокальных адресов. Для этого в файле /etc/sysctl.conf прописываем:

net.ipv4.ip_nonlocal_bind = 1

После чего перезагружаем конфиг sysctl:

sysctl -p /etc/sysctl.conf

6 комментариев к записи “Starting nginx: [emerg]: bind() to IP failed (99: Cannot assign requested address)

  1. Спустя три года от этого коммента я говорю тебе спасибо:) в полвторого ночи, после внезапной остановки nginx!

  2. Первая ссылка в Google выдаёт тот же совет но с ipv6. Добавил в конфиг обе строки. Но у меня, естественно, ipv4. Так что первая статья не помогла.

    Забавно так. Перезагружаешь сервак. Все такие: упали, отжались, поднялись. А nginx такой: «не-не-не, ты чет там нахимичил, возвращай, как было.» А я такой в ТП: «Вы чет там нахимичили, возвращайте как было.» А ТП такая: «без проблем, плати 15 евро.» А я такой, не-не-не. «Ок Google! Там что-то нахимичили, как быть?». И тут вы со своим советом)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *