Решение проблем, связанных с ошибкой NGINX «403 Forbidden»

«403 Forbidden» — наиболее распространенная ошибка при работе с NGINX. В данной статье мы расскажем о причинах возникновения 403 forbidden NGINX, а также о том, как найти ее причину и исправить основную проблему.

Об ошибке

«403 Forbidden» — это универсальная ошибка NGINX, которая указывает на то, что вы запросили что-то, а NGINX(по ряду причин) не может это предоставить. «403» будет кодом состояния HTTP, который означает, что веб-сервер получил и понял запрос, но не может предпринять никаких дальнейших действий.

Поиск файла конфигурации NGINX

По умолчанию файлы конфигурации NGINX находятся в папке /etc/nginx. Если вы посмотрите этот каталог, то найдете пару конфигурационных файлов для разных модулей сервера.

Главный файл конфигурации — /etc/nginx/nginx.conf. Он включает основные директивы для NGINX и будет аналогом файла httpd.conf для Apache.

Чтобы отредактировать этот файл, используйте команду:

CentOS 7: sudo nano /etc/nginx/conf.d/test.example.com.confUbuntu 16.04: sudo nano /etc/nginx/sites-available/test.example.com.conf

Некорректный индексный файл

Одна из наиболее распространенных причин ошибки 403 forbidden NGINX — некорректная параметр индексного файла. nginx.conf указывает, какие индексные файлы должны загружаться, и в каком порядке. К примеру, приведенная ниже строка указывает NGINX искать index.html, далее index.htm, далее index.php:

index index.html index.htm index.php;

Если ни один из данных трех файлов не будет найден в каталоге, NGINX вернет ошибку «403 Forbidden».

Примечание. Имена файлов чувствительны к регистру. Если nginx.conf указывает index.html, а файл называется Index.html, это приведет к ошибке «403 Forbidden».

Если вы хотели бы использовать имя индексного файла, которое веб-сервер NGINX не распознает, отредактируйте nginx.conf и добавьте имя файла в строку конфигурации индекса.

К примеру, чтобы добавить index.py в список распознаваемых индексных файлов, отредактируйте эту строку следующим образом:

index index.html index.htm index.php index.py;

Сохраните изменения, а далее перезапустите NGINX командой:

sudo nginx -s reload

Автоиндекс

Альтернативным решением будет разрешение индекса директории. Индекс директории означает, что если индексный файл не найден, сервер отобразит все содержимое директории.

По соображениям безопасности индекс директории в NGINX по умолчанию отключен.

При «403 forbidden NGINX», если вы хотели бы показать индекс директории в ситуациях, когда NGINX не может найти(идентифицировать) файл, отредактируйте nginx.conf, как описано выше, и добавьте в него две следующие директивы:

Autoindex on;Autoindex_exact_size off;

Данные директивы должны быть добавлены в блок location. Можно либо добавить их в существующий блок location/, либо добавить новый. Окончательный результат должен выглядеть так:

location / { [pre-existing configurations, if applicable] autoindex on; autoindex_exact_size off; }

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

location /myfiles { autoindex on; autoindex_exact_size off; }

Сохраните изменения в файле, далее перезапустите NGINX командой:

sudo nginx -s reload

Права доступа к файлам

Некорректные права доступа к файлам являются ещё одной причиной ошибки «403 Forbidden NGINX». Для использования с NGINX рекомендуется стандартная параметр: для каталогов — 755 и для файлов — 644. Посетитель NGINX также должен быть владельцем файлов.

Идентификация посетителя NGINX

Для начала необходимо определить, от имени какого посетителя запущен NGINX. Для этого используйте команду:

ps -ef | grep nginx

В этом примере рабочий процесс NGINX работает от имени посетителя nginx.

Установите права собственности на файл

Перейдите на уровень выше корневой директории документа веб-сайта. Например, если корневая директория веб-сайта /usr/share/nginx/example.com, перейдите в /usr/share/nginx при помощи команды:

cd /usr/share/nginx

Измените права собственности на все файлы в директориях нижних уровней на посетителя nginx при помощи команды:

sudo chown -R nginx:nginx *

Установите права доступа

403 forbidden NGINX — как исправить: установите права доступа для каждой директории на 755 при помощи команды:

sudo chmod 755 [имя директории]

К примеру, чтобы установить права доступа для директории example.com, используется команда:

sudo chmod 755 example.com

Далее перейдите в корневой каталог веб-документа:

sudo chmod 755 example.com

Измените права доступа для всех файлов в данной директории при помощи команды:

sudo chmod 644 *

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *