Решение проблем, связанных с ошибкой NGINX «403 Forbidden»
«403 Forbidden» — наиболее распространенная ошибка при работе с NGINX. В этой статье мы расскажем о причинах возникновения 403 forbidden NGINX, а также о том, как найти ее причину и исправить основную проблему.
- Об ошибке
- Поиск файла конфигурации NGINX
- Некорректный индексный файл
- Автоиндекс
- Права доступа к файлам
- Идентификация пользователя NGINX
- Установите права собственности на файл
- Установите права доступа
«403 Forbidden» — это универсальная ошибка NGINX, которая указывает на то, что вы запросили что-то, а NGINX (по ряду причин) не может это предоставить. «403» является кодом состояния HTTP, который означает, что веб-сервер получил и понял ваш запрос, но не может предпринять никаких дальнейших действий.
По умолчанию файлы конфигурации NGINX находятся в папке /etc/nginx. Если вы просмотрите этот каталог, то найдете несколько конфигурационных файлов для различных модулей сервера.
Главный файл конфигурации — /etc/nginx/nginx.conf. Он содержит основные директивы для NGINX и является аналогом файла httpd.conf для Apache.
Чтобы отредактировать этот файл, используйте команду:
CentOS 7: sudo nano /etc/nginx/conf.d/test.example.com.conf Ubuntu 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. Для этого используйте команду:
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 *
Вадим Дворниковавтор-переводчик статьи «Solve an NGINX 403 Forbidden Error»
Решение проблем, связанных с ошибкой NGINX «403 Forbidden»
«403 Forbidden» — наиболее распространенная ошибка при работе с NGINX.
В этой статье мы расскажем о причинах возникновения 403 forbidden NGINX, а также о том, как найти ее причину и исправить основную проблему.- Об ошибке
- Поиск файла конфигурации NGINX
- Некорректный индексный файл
- Автоиндекс
- Права доступа к файлам
- Идентификация пользователя NGINX
- Установите права собственности на файл
- Установите права доступа
«403 Forbidden» — это универсальная ошибка NGINX, которая указывает на то, что вы запросили что-то, а NGINX (по ряду причин) не может это предоставить. «403» является кодом состояния HTTP, который означает, что веб-сервер получил и понял ваш запрос, но не может предпринять никаких дальнейших действий.
По умолчанию файлы конфигурации NGINX находятся в папке /etc/nginx. Если вы просмотрите этот каталог, то найдете несколько конфигурационных файлов для различных модулей сервера.
Главный файл конфигурации — /etc/nginx/nginx.conf. Он содержит основные директивы для NGINX и является аналогом файла httpd.
Чтобы отредактировать этот файл, используйте команду:
CentOS 7: sudo nano /etc/nginx/conf.d/test.example.com.conf Ubuntu 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. Для этого используйте команду:
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 *
Вадим Дворниковавтор-переводчик статьи «Solve an NGINX 403 Forbidden Error»
Как исправить NGINX 403 Запрещено
Nginx2 года назад
от John Otieno
При работе с серверами и веб-ресурсами мы сталкиваемся с ошибками, которые мы вызываем при обслуживании и настройке. Когда вы сталкиваетесь с такими ошибками, вам необходимо как можно быстрее диагностировать и устранять проблему, чтобы избежать простоев и потери данных.
В этом кратком руководстве рассматривается распространенная ошибка при работе с серверами NGINX (403 Forbidden), ее причины и способы ее устранения.
Что такое ошибка Nginx 403?
Nginx 403 Запрещенная ошибка — это код состояния, который генерируется и отображается пользователю, когда клиент пытается получить доступ к части веб-сервера с недостаточными разрешениями. Например, NGINX защищает список каталогов и приводит к ошибке 403.
Серверная часть Причины ошибки Nginx 403
сам сервер. Сначала мы рассмотрим ошибки на стороне сервера, а затем ошибки на стороне клиента.
Причина 1: неверный индексный файл
Самая первая и распространенная причина ошибки NGINX 403 Forbidden — неправильная конфигурация индексного файла.
Файл конфигурации Nginx указывает, какие индексные файлы загружать и в каком порядке их загружать. Однако, если указанные индексные файлы отсутствуют в каталоге, Nginx вернет ошибку 403 запрещен.
Например, приведенная ниже конфигурация определяет индексные файлы и способ их загрузки.
location / {
index index.html index.htm index.html inde.php;
}
Один из способов решить эту проблему — добавить файл индекса, указанный в файле конфигурации, или добавить доступный файл индекса в файл конфигурации.
Другой способ решить эту проблему — разрешить Nginx отображать каталоги, если файл индекса недоступен. Включите этот модуль, добавив следующую запись в файл конфигурации.
расположение / {
автоиндекс включен;
autoindex_exact_size включен;
}
ПРИМЕЧАНИЕ. Мы не рекомендуем использовать этот метод на общедоступных серверах.
Для получения дополнительной информации о том, как обслуживать статический контент, рассмотрите ресурс документации Nginx, указанный ниже:
https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/
Причина 2: Неправильно установленные разрешения
Nginx 403 запрещенная ошибка также может быть вызвана тем, что файлы и каталоги имеют неправильно установленные разрешения. Чтобы Nginx успешно отправлял клиенту определенный файл и ресурс, Nginx должен иметь права RWX — чтение, запись и выполнение — на всем пути.
Чтобы устранить эту ошибку, измените права доступа к каталогам на 755 и права доступа к файлам на 644. Убедитесь, что пользователь, запускающий процесс Nginx, владеет файлами. Например, установите для пользователя www-data:
sudo chown -R www-data:www-data *
Наконец, установите права доступа к каталогу и файлу:
sudo chmod 755 {dir}
sudo chmod 644 {files }
Причина ошибки на стороне клиента 403
Как упоминалось ранее, ошибка 403 может быть вызвана пользователем, а не сервером. Чтобы устранить такие проблемы на стороне клиента, выполните следующие операции.
- Убедитесь, что вы обращаетесь к правильному веб-сайту
- Очистить кеш браузера
- Убедитесь, что брандмауэр или прокси-сервер позволяют вам получить доступ к веб-ресурсу.
Заключение
В этом кратком руководстве рассмотрены причины запрещенной ошибки NGIX 403 и различные способы ее исправления. Прежде чем приступать к каким-либо методам устранения неполадок, рекомендуется просмотреть журналы сервера.
Об авторе
Джон Отиено
Меня зовут Джон, и я такой же гик, как и вы. Я увлечен всеми вещами компьютеров от аппаратного обеспечения, операционных систем до программирования. Моя мечта — поделиться своими знаниями с миром и помочь другим гикам. Следите за моим контентом, подписавшись на список рассылки LinuxHint
Посмотреть все сообщения
[ИСПРАВЛЕНО] 403 Запрещенная ошибка на веб-сервере Nginx
Обновлено: 11 января 2020 г. Категория: nginx
Много раз вы сталкиваетесь с ошибкой 403 Forbidden при использовании веб-сервера Nginx, и в большинстве случаев это не связано с самим Nginx. Ошибка 403 Forbidden означает, что у вас нет разрешения на доступ к этой части Интернета. Эта ошибка может быть вызвана многими причинами, и здесь мы обсудим эти причины одну за другой. Чтобы отладить или исправить ошибки 403 Forbidden Nginx, все, что вам нужно сделать, это проверить правильные журналы ошибок и предпринять соответствующие действия для их устранения.
403 Запрещенные ошибки — это способ Nginx сообщить: «Вы запросили ресурс, но мы не можем его вам предоставить». Ошибка должна быть похожа на изображение ниже.
403 Запрещено технически не ошибка, а код состояния HTTP. Заголовки ответа 403 намеренно возвращаются во многих случаях, например —
- Пользователь заблокирован от запроса этой страницы/ресурса или сайта в целом.
- Пользователь пытается получить доступ к каталогу, но автоиндекс отключен.
- Пользователь пытается получить доступ к файлу, доступ к которому возможен только изнутри.
- Проблема с интернет-ресурсами на компьютере пользователя.
- Ввод неверного адреса веб-сайта;
- Смена ресурсов на сайте;
- IP-адрес пользователя был заблокирован из-за нарушения политики веб-сайта или забанен по другим причинам.
- Время ожидания браузера истекло.
Что касается причин со стороны администраторов сайта, то причины, по которым выдается ошибка Nginx 403 Forbidden, разные:
- Индексная страница повреждена или переименована под другим именем.
- Страница индекса находится в каталоге, для которого отключен параметр автоматического индексирования.
- Файлы, которые необходимо загрузить, имеют неправильные права доступа к файлам.
- Файл имеет неверный формат.
- Возникает ошибка при попытке обновить кэш DNS путем изменения хоста.
- Неправильная конфигурация .httacess или в другом файле конфигурации с сервера.
Основной файл конфигурации Nginx — /etc/nginx/nginx.conf
Журнал ошибок Nginx Расположение: /var/log/nginx/error.log
Действия по устранению неполадок
- 9 заключается в том, чтобы проверить идентификатор основного процесса Nginx, вы можете запустить следующую команду и исключить вывод, похожий на тот, который указан ниже:
- Неверный файл индекса
В файле конфигурации NGINX указано, какие файлы индекса загружать и в каком порядке. Например, эта строка указывает NGINX искать index.html, затем index.htm, а затем index.php:индекс index.html index.htm index.php;
Если ни один из этих трех файлов не найден в каталоге, NGINX возвращает ошибку «403 Forbidden». Точно так же для установки Python index.py должен быть определен как индекс каталога.
Сохраните и выйдите из файла после добавления index.py в каталог index., затем перезапустите NGINX с помощью команды:sudo nginx -s перезагрузить
- Разрешения установлены неправильно
Чтобы обслуживать файл, Nginx должен иметь права на чтение для файла, а также разрешения на выполнение для каждого иерархического родительского каталога файла для перехода к нему.
Например, для доступа к файлу, расположенному по адресу —/usr/share/basezap/logo.jpg
Nginx должен иметь права на чтение файла, а также права на выполнение для /, /usr, /usr/share и / usr/доля/basezap.
пс х | grep nginx
24152 ? С 0:00 nginx: главный процесс /usr/sbin/nginx
Первый столбец каждой строки — это идентификатор процесса, как мы видим, в данном случае идентификатор основного/главного процесса — 24152
, однако он будет меняться в каждой системе.