Есть железный web-сервер с двумя дополнительными выделенными ip-адресами. После перезагрузки сервера nginx отказался запускаться, ругаясь на дополнительные ip-адреса вот так:
emerg]: bind() to IP x.x.x.x failed (99: Cannot assign requested address)
Обнаружив проблему, я быстро заменил ip-адреса в конфигах хостов на основной ip-адрес сервера и перезапустил nginx. Сайты заработали. Я обратился в ТП дата-центра, чтобы решить проблему. ip-адреса не пинговались. Я же решил, что независимо от того, правильно или неправильно настроен сервер, ip-адреса должны пинговаться. Но мне сказали, что у меня на сервере, что-то внутри настроено неправильно.
Я вернул в конфиг старые ip-адреса и избавился от ошибки строкой net.ipv4.ip_nonlocal_bind = 1 в /etc/sysctl.conf
Nginx запустился, но сайты на дополнительных ip-адресах перестали открываться. Браузер пишет:
This site can’t be reached
site.ru is unreachable.
ERR_ADDRESS_UNREACHABLE
Проблема в том, что я ничего на сервере не настраивал. Т.е. не выполнял никаких действий, которые могли привести к поломке. Сейчас нужно либо доказать ТП наличие аппаратной проблемы на сервере, либо продиагностировать и решить проблему в ПО сервера. Как это сделать?
Итак, a-запись домена указывает на дополнительный выделенный ip-адрес, он же выбран у домена в панели VESTACP и прописан в конфиге nginx, но сайт can’t be reached. Что это значит? Если выбирать основной ip-адрес, то сайт работает корректно.
Сервер: Ubuntu 16.04 + VESTACP + NGINX + PHP-FPM