Не запускается nginx после редактирования файла default в sites-avaliable

Устанавливаю nginx

apt install nginx -y

К нему модуль RTMP

apt install libnginx-mod-rtmp -y

В nginx.conf добавляю:

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        allow publish all; 
        application live {
            live on;
            record off;
        }
    listen 1936;
    application livetest {
        live on;
        record off;
        }
    }
}

Проверяю конфиг nginx -t, выдаёт ок и саксессфул. Перезапускаю nginx systemctl restart nginx, проверяю systemctl status nginx, тоже всё хорошо.

Но далее при изменении в /etc/nginx/sites-avaliable/default nginx падает. Изменения: удаляю все строки по умолчанию и дописываю

server {
    listen 8080;
    server_name _;
    # rtmp stat
    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        root /var/www/html/rtmp;
    }
    # rtmp control
    location /control {
        rtmp_control all;
    }
}

При попытке сделать рестарт после изменения файла nginx failed с ошибкой:

 nginx: [emerg] bind() to 0.0.0.0:8080 failed (98: Unknown error)

Меняю порт, ошибка прежняя.

Ищу, что использует какие порты sudo netstat -nlp. Нахожу процесс на :8080, motion, он мне не нужен, удаляю модуль полностью. Снова проверяю, порт больше не используется, ss -antpl | grep 8080 ничего тоже не выводит.

Nginx не запускается с той же ошибкой. Возвращаю default в исходное состояние, nginx не запускается. Сношу nginx, ставлю заново, всё работает. Меняю defaults, всё падает.

В логе также только [emerg] bind() to 0.0.0.0:8080 failed (98: Unknown error)

Я впервые ковыряю линукс, прошу простить, если вопрос простой, но я усердно гуглил до того как написать вопрос.


Ответы (1 шт):

Автор решения: DiD

Файл по пути /etc/nginx/sites-avaliable/default по-умолчанию не влияет на работу nginx, как и все файлы в папке /etc/nginx/sites-avaliable.

nginx подключает конфиги из папки /etc/nginx/sites-enabled.

Обычно, сами конфиги хранятся в /etc/nginx/sites-avaliable, а в папку /etc/nginx/sites-enabled добавляют симлинк (когда необходимо включить конфиг конкретного сайта) командой:

ln -s /etc/nginx/sites-avaliable/default /etc/nginx/sites-enabled

где

  • ln - команда, создащая ссылки
  • -s - параметр указывающий, что надо создать симлинк
  • /etc/nginx/sites-avaliable/default - откуда делать ссылку
  • /etc/nginx/sites-enabled - куда делать ссылку
→ Ссылка