NGINX не будет обслуживать HTML файлы из каталога.

Вопрос или проблема

Есть Nginx, который должен обслуживать файлы от имени пользователя www-data:

nginx.conf

user www-data;

sites-enabled:

server {
        listen 80;

        root /home/ubuntu/front;
        index index.html;
        }

директория:

drwxr-x---  5 www-data ubuntu  4096 Jan 12 00:19 front

пользователь ubuntu является участником:

root@ubuntu-HP-ZBook-Studio-G3:/etc/nginx/sites-enabled# id ubuntu
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),100(users),114(lpadmin)

пользователь www-data является участником:

root@ubuntu-HP-ZBook-Studio-G3:/etc/nginx/sites-enabled# id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Сайт не отображается из-за ошибки 403.

Я не совсем понимаю, что означает Nginx.conf. На машине есть пользователь www-data и есть группа www-data. Что имеется в виду в Nginx? Пользователь www-data, который является участником какой группы? Пользователь www-data как участник группы www-data?

Есть пользователь ubuntu и есть группа ubuntu. Кому нужно присоединиться к кому, чтобы это заработало?

Буду благодарен за любые идеи.

Ответ или решение

В вашей ситуации ключевая проблема заключается в ошибке 403 «Запрещено» при обращении к HTML-файлам, которая обычно связана с проблемами доступа к файлам или директориям. Рассмотрим, как решить эту проблему, используя метод TEA (Теория, Пример, Применение).

Теория

Для корректной работы веб-сервера NGINX важно, чтобы пользователь, от имени которого он запущен, имел соответствующие разрешения на доступ к директориям и файлам, которые необходимо обслуживать. В стандартной конфигурации пользователь www-data и группа www-data обычно используются для запуска NGINX. Ошибка 403 указывает на отсутствие разрешения на чтение необходимых файлов или на доступ к соответствующим директориям.

Пример

В вашей конфигурации указано:

  1. В nginx.conf настроено использование пользователя www-data:

    user www-data;
  2. Сервер пытается использовать корневую директорию /home/ubuntu/front, которая имеет следующие права доступа:

    drwxr-x---  5 www-data ubuntu  4096 Jan 12 00:19 front
  3. Пользователь ubuntu состоит в группе www-data, однако это может быть недостаточно, если у www-data нет разрешения на доступ к выбранной директории.

Применение

Чтобы устранить проблему и избежать ошибки 403, выполните следующие шаги:

  1. Измените разрешения для директории:

    Убедитесь, что у группы www-data (в которой состоит пользователь www-data) есть достаточные права доступа на чтение директории и файлов. Один из способов — дать разрешение группе на чтение файлов и папок:

    sudo chmod -R 755 /home/ubuntu/front

    Здесь:

    • 7 (rwx) — разрешения для владельца.
    • 5 (r-x) — разрешения для группы (включает www-data).
    • 5 (r-x) — разрешения для остальных пользователей.
  2. Проверьте принадлежность файлов и директорий:

    Убедитесь, что пользователь www-data имеет доступные ему пути к файлам. Это можно сделать, изменив владельца директории и файлов внутри неё на пользователя www-data:

    sudo chown -R www-data:www-data /home/ubuntu/front

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

  3. Перезапустите NGINX:

    После всех изменений необходимо перезапустить сервер, чтобы изменения вступили в силу:

    sudo systemctl restart nginx

Следуя этим шагам, вы должны обеспечить серверу необходимые права для доступа к предоставляемым HTML-файлам и устранить ошибку 403. При необходимости повторно проверьте конфигурационные файлы, чтобы удостовериться, что отсутствуют другие ошибки.

Оцените материал
Добавить комментарий

Капча загружается...