Назад | Перейти на главную страницу

Nginx не запускается с ошибкой: сбой bind () до 0.0.0.0:80

Недавно я создал экземпляр Digital Ocean и настроил его с помощью базового стека LEMP. Я также подключил его к домену с такой конфигурацией nginx:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Несколько дней спустя я решил перенести все на новый сервер, поэтому я создал снимок этого контейнера и запустил новый сервер с точно таким же снимком / изображением.

Однако результаты были не такими. Когда я пытаюсь перезагрузить Nginx, я получаю следующее:

@:~$ sudo systemctl reload nginx
nginx.service is not active, cannot reload.

По какой-то причине Nginx не запускается и выходит с ошибкой (лог из /var/log/nginx/error.log):

2020/06/01 16:49:24 [emerg] 1325#1325: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to [::]:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to [::]:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to [::]:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to [::]:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: bind() to [::]:80 failed (98: Address already in use)
2020/06/01 16:49:24 [emerg] 1325#1325: still could not bind()

Я пробовал добавить ipv6only=on в конфиг, но это не помогло. Я также пытался переустановить Nginx, но это тоже не помогло.

В чем может быть проблема? Если вам не хватает файлов журнала, просто дайте мне знать, и я обновлю сообщение.

bind() to [::]:80 failed (98: Address already in use)

означает, что какое-то приложение уже использовало этот порт? проверить, используя:

ss -ntlp

вы увидите что-то вроде:

State      Recv-Q       Send-Q              Local Address:Port             Peer Address:Port
LISTEN     0            128                       0.0.0.0:5355                  0.0.0.0:*          users:(("systemd-resolve",pid=1089,fd=13))
LISTEN     0            128                       0.0.0.0:22                    0.0.0.0:*          users:(("sshd",pid=1039,fd=4))

найти приложение и закрыть его, apache работает?