Рейтинг:3

bind() на 0.0.0.0:80 не удалось (98: адрес уже используется), хотя работает только NGINX

флаг mp

ПРИМЕЧАНИЕ. Оказалось, что проблемы вообще не было. Подробности смотрите в комментарии.

Я только что получил свежий экземпляр из Oracle Cloud, Ubuntu 20.04 Minimized. Поскольку я пытаюсь запустить «ДокуВики» на этом экземпляре, я установил следующие пакеты:

sudo apt установить сетевые инструменты lsof wget nano
sudo apt установить php7.4-fpm php7.4-xml php7.4-mbstring imagemagick nginx certbot python3-certbot-nginx

я никогда не трогал nginx.conf в /etc/nginx но удалил По умолчанию символическая ссылка в /etc/сайты с поддержкой и поместите свой собственный файл conf в /etc/nginx/conf.d с именем пример.com.conf(настоящее имя отредактировано)

сервер {
    слушать 80 default_server;
    имя_сервера пример.com;
    корень /var/www/dokuwiki;
    индекс index.php index.html;

    место расположения / { 
        try_files $uri $uri/ @dokuwiki;
    }

    местоположение @dokuwiki {
        переписать ^/_media/(.*) /lib/exe/fetch.php?media=$1 последним;
        переписать ^/_detail/(.*) /lib/exe/detail.php?media=$1 последним;
        переписать ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 последним;
        переписать ^/(.*) /doku.php?id=$1&$args последним;
    }

    расположение ~ \.php$ {
        включить фрагменты/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        включить fastcgi_params;
    }
    
    расположение ~ /(conf|bin|inc|vendor)/ {
        отрицать все;
    }
    
    местоположение ~ /данные/ {
        внутренний;
    }
}

и, конечно же, /var/www/dokuwiki принадлежит www-данные(как пользователь, так и группа) с помощью этой команды:

sudo chown -R www-data:www-data /var/www/dokuwiki

Проблема в том, что я не могу зайти на свой сайт. когда я печатаю нгинкс в терминале кричит так:

nginx: [появление] bind() на 0.0.0.0:80 не удалось (98: адрес уже используется)
nginx: [появление] bind() на 0.0.0.0:80 не удалось (98: адрес уже используется)
nginx: [появление] bind() на 0.0.0.0:80 не удалось (98: адрес уже используется)
nginx: [появление] bind() на 0.0.0.0:80 не удалось (98: адрес уже используется)
nginx: [появление] bind() на 0.0.0.0:80 не удалось (98: адрес уже используется)
nginx: [emerg] по-прежнему не удалось связать()

Но я проверил, нет апач2-подобные вещи и никакой другой процесс, прослушивающий порт 80.

root@redacted:~# lsof -i :80
КОМАНДА PID ПОЛЬЗОВАТЕЛЬ ТИП FD УСТРОЙСТВО РАЗМЕР/ВЫКЛ НАЗВАНИЕ УЗЛА
nginx 1296 root 6u IPv4 32966 0t0 TCP *:http (СЛУШАТЬ)
nginx 1297 www-data 6u IPv4 32966 0t0 TCP *:http (СЛУШАТЬ)
nginx 1298 www-data 6u IPv4 32966 0t0 TCP *:http (СЛУШАТЬ)

root@redacted:~# статус systemctl nginx
nginx.service — высокопроизводительный веб-сервер и обратный прокси-сервер
     Загружено: загружено (/lib/systemd/system/nginx.service; включено; предустановка поставщика: включена)
     Активно: активно (работает) с сб 06.11.2021 13:24:23 UTC; 16 минут назад
       Документы: man:nginx(8)
    Процесс: 1294 ExecStartPre=/usr/sbin/nginx -t -q -g демон включен; master_process включен; (код=выход, статус=0/УСПЕХ)
    Процесс: 1295 ExecStart=/usr/sbin/nginx -g демон включен; master_process включен; (код=выход, статус=0/УСПЕХ)
   Основной PID: 1296 (nginx)
      Заданий: 3 (лимит: 1110)
     Память: 3,1 М
     Группа CG: /system.slice/nginx.service
             • 1296 nginx: главный процесс /usr/sbin/nginx -g daemon on; master_process включен;
             ââ1297 nginx: рабочий процесс
             — 1298 nginx: рабочий процесс

06 ноября 13:24:23 отредактировано systemd[1]: Запуск Высокопроизводительный веб-сервер и обратный прокси-сервер...
06 ноября 13:24:23 отредактировано systemd[1]: запущен Высокопроизводительный веб-сервер и обратный прокси-сервер.

root@redacted:~# fuser -v 80/tcp
                     КОМАНДА ДОСТУПА ПИД-ИД ПОЛЬЗОВАТЕЛЯ
80/tcp: корень 1296 F.... nginx
                     www-данные 1297 F.... nginx
                     www-данные 1298 F.... nginx

Так как я не трогал nginx.conf, нгинкс -т говорит, что ошибки нет. но проверка .conf файл не работает:

root@redacted:~# nginx -tc /etc/nginx/conf.d/example.com.conf
nginx: [emerg] директива server не разрешена здесь в /etc/nginx/conf.d/example.com.conf:1
nginx: проверка файла конфигурации /etc/nginx/conf.d/example.com.conf не удалась

Но я думаю, что это не относится к этой проблеме (хотя и не уверен).

Даже убить весь процесс, использующий порт 80, тоже не работает.

Я искал в Google решение этой проблемы, но не нашел ни одного работающего.

PS. Я открыл порт из iptables и веб-панели OC. Так что порт не будет причиной этой проблемы, я думаю.

флаг in
Ваш `systemctl status` показывает, что nginx уже запущен. Вам нужно либо остановить его, либо перезапустить, а не запускать вручную.
tetratheta avatar
флаг mp
@GeraldSchneider Это не решило проблему. После перезапуска nginx по-прежнему показывает ошибку привязки.
tetratheta avatar
флаг mp
О, я неправильно понял комментарий Джеральда: теперь это работает. На самом деле вообще не было никаких проблем. Команда `nginx` пыталась запустить другой процесс NGINX вместо того, чтобы показывать журналы (я так думал). Спасибо!
djdomi avatar
флаг za
@tetratheta, пожалуйста, напомните добавить ответ и принять его, иначе нам напомнят об удалении этого вопроса.
Рейтинг:1
флаг mp

Я не знаю, могу ли я опубликовать ответ на свой вопрос, но вот ответ.

На самом деле, я неправильно понял, что нгинкс команда делает. Я думал, что это покажет мне журнал текущего процесса NGINX, но на самом деле он пытался создать новый процесс NGINX, который будет заблокирован текущим процессом NGINX. Вот почему он показал мне [возникновение] привязка () к 0.0.0.0:80 не удалась (98: адрес уже используется) ошибка мне.

Итак, в заключение, не было никаких проблем с моим окружением. Все было хорошо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.