NGINX - это популярный веб-сервер, используемый миллионами веб-сайтов и организаций. Иногда при запуске сервера NGINX вы можете получить ошибку 'bind to 0.0.0.0:80 failed' и он может не запуститься. В этой статье мы узнаем, как устранить эту проблему. Это распространенная проблема, с которой сталкиваются многие системные администраторы.
Как исправить ошибку NGINX Bind to 0.0.0.0:80 Failed Error
Существует несколько причин возникновения этой ошибки. Мы рассмотрим наиболее распространенные из них.
1. Проверьте порт
Как правило, NGINX выдает эту ошибку, если на порту, где вы хотите запустить сервер NGINX, уже запущен какой-то другой процесс. Например, порт 80 является наиболее часто используемым портом для NGINX. Иногда на том же порту может быть запущен сервер Apache. Поэтому он не позволит NGINX запуститься на этом порту. В этом случае вы можете остановить или убить процесс, запущенный на этом порту, а затем попытаться запустить NGINX. Вот пример.
1 | sudo /etc/init.d/apache2 stop |
В качестве альтернативы выполните команду netstat, чтобы узнать процесс, запущенный на порту 80.
1 | netstat -tulpn | grep :80 |
Обратите внимание на PID процесса в результате выполнения вышеуказанной команды. Затем используйте команду kill, чтобы убить этот процесс. Замените PID ниже на PID процесса, который нужно убить.
1 | kill -9 [PID] |
Вы также можете изменить NGINX для запуска на другом порту. Откройте файл конфигурации NGINX.
1 | nano /etc/nginx/nginx.conf |
Найдите строку listen 80
1 2 3 4 5 | server { ... listen 80; ... } |
Замените 80 на другой доступный номер порта.
1 2 3 4 5 | server { ... listen 8000; ... } |
Сохраните и завершите файл. Перезапустите сервер NGINX, чтобы применить изменения.
2. Неправильная конфигурация
В некоторых случаях администраторы используют следующую конфигурацию для запуска NGINX на порту 80.
1 | listen [::]:80; |
Обратите внимание, что это конфигурация для IPv6, а не для IPv4. Для IPv4 необходимо использовать следующую конфигурацию.
1 | listen 80; |
Если вы хотите использовать конфигурацию IPv6, вам нужно добавить директиву ipv6only, как показано ниже.
1 | listen [::]:80 ipv6only=on; |
3. Проблема с конфигурацией по умолчанию
Каждая система NGINX поставляется с файлом конфигурации по умолчанию по адресу /etc/nginx/default. Вы можете либо настроить его, либо заменить своей собственной конфигурацией. Если вы храните его в /etc/nginx/sites-enabled или имеете симлинк из /etc/nginx/sites-enabled в /etc/nginx/default, то вы можете получить эту ошибку. Поэтому рекомендуется просто удалить все симлинки из /etc/nginx/sites-enabled в /etc/nginx/default с помощью следующей команды.
1 | sudo rm /etc/nginx/sites-enabled/default |
Заключение
В этой статье мы узнали, как исправить ошибку NGINX bind 0.0.0.0:80 failed. В основном, это происходит потому, что какой-то другой процесс запущен на том же порту, или NGINX неправильно настроен для работы на порту 80.