CentOS8 nginx: [emerg] bind() не удалось (99: невозможно назначить запрошенный адрес)

17.01.2020 Я установил CentOS 8 на два отдельных сервера, один на облачный сервер, а другой на выделенный сервер. В обоих случаях Nginx не запускался автоматически при перезагрузке сервера. Файл /var/log/boot.log обоих указанных Network Manager был запущен до Nginx, но они, по-видимому, работали параллельно, и Nginx активировался до инициализации сети. Это привело к тому, что Nginx выдал ошибку «Невозможно назначить запрошенный адрес». Если я вручную запускал Nginx после загрузки системы, он инициализировался без проблем. Я смог определить решение и опубликую его как ответ, чтобы пометить его как решенный. Поскольку это было последовательно на двух совершенно не связанных установках, я уверен, что у других будет такая же проблема, и они будут искать ответ, который я не нашел.


person JR Panther    schedule 17.01.2020    source источник


Ответы (1)


Это изменение помогло мне на обоих серверах:
отредактируйте файл /usr/lib/systemd/system/nginx.service

Измените значение по умолчанию:
[Unit]
Description=The nginx HTTP и обратный прокси-сервер
After=network.target remote-fs.target nss-lookup.target

To:
[Unit]
Description=HTTP-сервер nginx и обратный прокси-сервер
After=network.target remote-fs.target nss-lookup.target network-online.target
Wants=network-online.target

Это заставляет Nginx ждать, пока сеть не будет подключена к сети, прежде чем запускаться.

На основе информации, найденной на этой странице:
https://unix.stackexchange.com/questions/126009/cause-a-script-to-execute-after-networking-has-started

person JR Panther    schedule 17.01.2020