Решение проблем, связанных с ошибкой 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.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 /
Также можно активировать индексирование директории в определенной папке, если не хотите, чтобы она была доступна для всего сайта:
location /myfiles
Сохраните изменения в файле, затем перезапустите NGINX командой:
sudo nginx -s reload
Что значит ошибка 403 Forbidden
Код ошибки 403 — Forbidden в переводе с английского «запрещенный».
Ошибка сообщает о том, что доступ к данной странице запрещен или не может быть предоставлен сервером. Пользователь, желающий посмотреть запрещенную страницу никак не сможет ее увидеть.
Ошибка Forbidden отображается внутри окна веб-браузера, как обычная веб-страница. Как и большинство подобных ошибок, вы можете найти ее во всех браузерах, работающих на любой операционной системе.
Причины возникновения 403 ошибки:
- указано неверное имя индексного файла, на нашем хостинге по умолчанию указаны следующие имена для индексного файла:
index.html
index.php
index.htm - отсутствие индексного файла
- указаны неверные права на папку, на скрипт (файл)
обычно для папок устанавливают права 755, для файлов 644 - файлы сайта на нашем хостинге обычно располагаются в папке с именем домена.
Как исправить ошибку 403:
- Необходимо проверить наличие ошибок в URL. На некоторых сайтах установлены запреты просмотров каталогов. Поэтому может показываться ошибка 403 Forbidden. Если Вы являетесь администратором сайта, включите просмотр каталогов в ПО Вашего сервера.
- Очистите Ваш браузер от кэша и удалите cookie. Кэш и файлы куки, выдавая старую версию страницы, могут вызвать ошибку 403. Убедитесь, что данные функции включены в Вашем браузере.
- Если это возможно авторизуйтесь на сайте. Обычно если требуется дополнительный доступ, прежде чем просмотреть страницу, сайт выдает ошибку 401 Unauthorized, но иногда вместо этой ошибки используется ошибка 403.
- Сообщите об ошибке руководству сайта. Возможно ошибка системная и ее видят все пользователи, а сайт еще не знает о проблеме.
- Обратитесь в техподдержку Вашего интернет-провайдера. Если сайт не работает только с Вашего устройства, возможно эта проблема связана с интернет-провайдером (например, поставщик услуг Интернета попал в черный список данного сайта).
- Если необходимая Вам страница правильная, а ошибка 403 появляется не только у Вас, но и у других пользователей, посетите страницу чуть позже, когда проблема будет устранена.
У нас Вы найдете надежный хостинг для сайта.
Все способы
© 2009–2023 «HANDYHOST.RU» 8-800-505-68-01
- Услуги
- Хостинг сайтов
- Домены
- Конструктор сайтов
- Linux VPS / Windows VPS
- Выделенные серверы
- SSL сертификаты
- Клиентам
- Контакты
- О компании
- Акции
- Оборудование
- Партнерская программа
- Поддержка
- Способы оплаты
- Регламент
- Документы
- Справка
Как исправить ошибку 403 Forbidden
Разбираемся, в каких ситуациях возникает ошибка 403 Forbidden и что делать, чтобы её исправить, когда вы владелец сайта и когда посетитель.
Что внутри
- Что такое ошибка 403 Forbidden
- Как может выглядеть ошибка 403 Forbidden
- Почему возникает ошибка 403 Forbidden
- Как убрать ошибку 403 Forbidden
Что такое ошибка 403 Forbidden
Ошибка 403 Forbidden — это код состояния HTTP, один из стандартных ответов сервера на запрос браузера. Примеры других кодов: 404 Not Found, 500 Internal Server Error или 504 Gateway Timeout.
Сервер отправляет один из таких кодов каждый раз, когда вы вводите в браузере адрес сайта или переходите по ссылке. Код есть, даже когда никакой ошибки нет и страница нормально загрузилась.
Конкретно код HTTP — 403 Forbidden — означает, что у посетителя недостаточно прав для просмотра контента.
Как может выглядеть ошибка 403 Forbidden
Дизайн и текст стандартной страницы с ошибкой будет отличаться в зависимости от веб-сервера или фреймворка, на котором работает сайт. Также стандартную страницу с ошибкой можно оформить в общем дизайне сайта и написать на ней любой текст, не обязательно «403», «Forbidden», «403 Forbidden» или «Ошибка 403».
Вот текстовые варианты этой ошибки, которые вы можете встретить на разных сайтах:
- Forbidden
- 403. That’s an error.
- Error: Access Denied
- 403 Forbidden – nginx
- 403 Sorry! Access denied
- Access forbidden! Error 403
- HTTP Error 403 – Forbidden
- Ошибка 403. Доступ запрещен.
- 403 – Forbidden: Access is denied
- HTTP Status 403 – Access is denied
- Forbidden – You don’t have permission to access this resource
- Forbidden – You don’t have permission to access / on this server
- 403 Forbidden – Access to this resource on the server is denied!
- Sorry, you have been blocked — You are unable to access domen.com
- Access to www.domen.com was denied – You don’t have authorization to view this page – HTTP ERROR 403
Почему возникает ошибка 403 Forbidden
Как мы уже выяснили, 403 ошибка означает, что доступ к контенту запрещён. Это часто случается по таким причинам:
- установлены неправильные права доступа к папкам и файлам;
- установлен неправильный пользователь/группа для файлов и папок;
- доступ запрещён в конфигурационном файле веб-сервера;
- файлы сайта загружены не в корневую папку на хостинге;
- неверно указано имя индексного файла в настройках;
- ошибку вызывает плагин или расширение.
Как исправить ошибку 403 Forbidden
Возможно, так и задумано, чтобы вы видели 403 ошибку. Допустим, администратор сайта осознанно ограничил к нему доступ. В этом случае можно попытаться зайти на сайт через VPN или прокси, но это поможет, только если доступ заблокирован конкретно для вашего IP-адреса.
Часто бывает наоборот — доступ закрывают для всех IP-адресов и разрешают только с определённых, например, с офисного VPN или домашнего выделенного IP. Это простой и рабочий способ защитить панель управления сайтом от взлома.
Если вы точно уверены, что ошибки быть не должно, значит скорее всего что-то сломалось на хостинге, где хранится сайт. Понадобится доступ к нему, чтобы решить проблему. Вот что на нём можно будет проверить.
1. Проверьте права доступа к папкам и файлам
У каждой папки и файла на хостинге есть права — параметр, который определяет, кто и что может с ними делать. Их всего три:
- Чтение — можно просматривать содержимое файла или папки;
- Редактирование — можно вносить изменения в файл, создавать или удалять файлы в папке;
- Выполнение — можно запускать скрипты или выполнять команды в тех или иных папках.
Обладать правами могут три категории пользователей:
- Владелец — обычно пользователь, который создал файл, но вообще, владельцем можно назначить и другого пользователя;
- Группа — пользователи, которые входят в список доверенных для владельца файла или папки и могут обладать особыми правами;
- Мир — все остальные пользователи, например, посетители сайта.
Права обозначаются в виде трёхзначного числа, каждая цифра в котором означает права определённой категории пользователей. Вот стандартные права, с которыми всё должно работать:
- Папки — 755 или 750;
- Файлы — 644 или 640.
Исключение — файл wp-config.php на сайтах на WordPress. Его права должны быть либо 440, либо 400.
Чтобы подробнее изучить, как работают права, читайте нашу статью:
2. Проверьте владельца папок
Ещё одна популярная причина возникновения 403 ошибки — неправильный владелец файлов или папок. Права на хостинге могут быть правильными, но файлом или папкой может владеть другой пользователь, в группу доверенных пользователей которого не входит веб-сервер. Из-за этого на веб-сервер будут распространяться права остальных пользователей, а их может быть недостаточно.
С такой проблемой могут столкнуться пользователи VPS, на виртуальном хостинге она не возникает. Решением будет — назначить владельцем файлов и папок веб-сервер. Для этого нужно подключиться к серверу по SSH в командной строке и использовать такую команду:
chown пользователь:группа /путь/к/файлу
В качестве пользователя и группы нужно указать имя пользователя, под которым веб-сервер выполняет процессы. Это может быть apache или httpd. Зависит от дистрибутива.
3. Проверьте файл .htaccess
.htaccess — это файл с командами для веб-сервера Apache, которые он должен выполнять каждый раз при обработке запроса ко всем или каким-то отдельным страницам сайта.
С его помощью можно настроить редирект, изменить лимиты веб-сервера и даже запретить доступ к определённым страницам сайта на основе разных параметров.
403 ошибка может возникнуть из-за ошибки при составлении команды, конфликта нескольких команд и даже нескольких файлов .htaccess. Также причиной ошибки могут быть специальные запрещающие команды со словами «Deny from …», «Require IP …», «R=403» или «RedirectMatch 403».
Если вы недавно меняли что-то в .htaccess, скорее всего, быстро найдёте команду, которая вызывает ошибку. А если нет, команда могла появиться там после установки плагина. Или она была в нём раньше, но вы впервые выполнили запрос, для которого команда сработала.
Простой способ узнать, дело в .htaccess или нет, — переименовать этот файл, из-за чего команды в нём перестанут действовать. Если 403 ошибка после этого исчезнет, проблема в какой-то из директив. Дальше придётся вручную выяснять, с какой.
4. Проверьте индексный файл в корневой папке сайта
Индексный файл есть у каждой страницы. Он загружается, каждый раз когда кто-то заходит на страницу в браузере. Его имя прописывается в конфигурационном файле веб-сервера.
Если в папке со страницей, на которую пытаются зайти, не будет индексного файла с указанным в настройках именем, веб-сервер попытается отобразить содержимое папки, где находятся файлы этой страницы. Это часто запрещено в настройках веб-сервера по умолчанию, поэтому в таких ситуациях ошибка 403 — это норма.
Проверьте, чтобы в конфигурационном файле веб-сервера было указано правильное название индексного файла. Допустим, у вас там только index.html, а на самом деле файл называется index.php. Тогда просто добавьте нужное расширение в директиву.
На веб-сервере Apache конфигурационные файлы, в которых обычно прописывают виртуальные хосты, хранятся в таких местах:
- Основной конфигурационный файл httpd.conf в каталоге /etc/httpd/conf/ либо apache.conf в каталоге /etc/apache2/conf/ (в зависимости от дистрибутива).
- Дополнительные конфигурационные файлы в каталогах /etc/httpd/conf.d/, /etc/apache2/conf.d/, /etc/apache2/sites-available/ или /etc/apache2/sites-enabled/.
У веб-сервера Nginx конфигурационные файлы, в которых обычно прописывают виртуальные хосты, хранятся в таких местах:
- Основной конфигурационный файл nginx.conf в каталоге /etc/nginx/.
- Дополнительные конфигурационные файлы в каталогах /etc/nginx/conf.d/, /etc/nginx/sites-available/ или /etc/nginx/sites-enabled/.
Конфигурационные файлы могут храниться и в других папках, если вы управляете сервером при помощи какой-то панели управления. Например, для Webuzo это /usr/local/apps/apache, а для Plesk — /home/user/conf/.
5. Проверьте настройки ModSecurity
ModSecurity — это файрвол, который защищает ваш сайт от внешних угроз. Принцип его работы заключается в том, что он блокирует запросы с кодом HTTP 403 Forbidden, если считает их вредоносными.
Бывает, файрвол срабатывает, когда не должен. Например, посетитель делает на сайте что-то безобидное, — например, заполняет форму, — нажимает «Отправить», но ModSecurity распознаёт это как SQL-инъекцию, блокирует действие и показывает 403 ошибку.
Решением проблемы будет отключить правило, но это получится сделать только на VPS или выделенном сервере. На виртуальном хостинге файрвол настраивает провайдер и у обычных пользователей к нему нет доступа. В этом случае напишите в поддержку провайдера и попросите отключить конкретное правило для вашего сайта.
Узнать, что дело именно в файрволе можно по логам. На VPS или выделенном сервере их можно найти по умолчанию по таким путям:
- Для Apache — /usr/local/apache/logs/modsec_audit.log;
- Для Nginx — /var/log/modsec_audit.log.
На виртуальном хостинге эти логи будут недоступны. В этом случае свяжитесь с провайдером хостинга, объясните им ситуацию и попросите проверить логи.
6. Отключите плагины
Если предыдущие советы не помогли и у вас сайт на CMS, попробуйте проверить плагины. В разных CMS они могут называться модули, дополнения или расширения. Любой плагин это чей-то код, который вы добавляете себе на сайт. В коде может быть баг, который вызовет ошибку. Или несколько плагинов могут конфликтовать между собой.
Простой способ проверить, вызывает ли 403 ошибку плагин — временно отключить все плагины на сайте. Это можно сделать в менеджере файлов в панели управления хостингом.
В cPanel для этого найдите на главной странице панели блок «Файлы» и перейдите в раздел «Менеджер файлов».
Дальше найдите корневую папку сайта, перейдите в папку wp-content и переименуйте папку plugins, например, в plugins-old. Это отключит все плагины.
Обычно для основного домена корневая папка называется public_html, а для дополнительного — так же, как и сам домен.
Если после этого 403 ошибка исчезла, переименуйте папку plugins обратно, зайдите в неё и по очереди переименовывайте папку с каждым плагином, пока не найдёте тот, который вызывает ошибку.
7. Почистите cookies
Ошибка 403 указывает на проблему с правами доступа к контенту, а некоторые cookies как раз используются для повторной авторизации на сайте. Например, благодаря cookies, браузеры запоминают, что мы уже вошли в аккаунт на некоторых сайтах.
Возможно, 403 ошибка возникает, потому что на сервере что-то поменялось и он больше не принимает старые cookies. Как вариант попробуйте зайти на сайт в другом браузере. Если получилось, значит дело точно в браузере.
Как очистить куки в популярных браузерах:
8. Почистите кэш
Возможно, какой-то из предыдущих советов помог, но вы не видите изменений, потому что страница с ошибкой попала в кэш. Как правило такие страницы не кэшируются, но на разных сайтах настройки разные, поэтому на всякий случай лучше очистить кэш.
Как очистить кэш в популярных браузерах:
Что дальше
Если ни одно из решений в статье не помогло, опишите вашу ситуацию в комментариях — постараемся помочь. А если вы разместили свой сайт у нас на хостинге, напишите тикет в службу поддержки, чтобы наши специалисты взглянули в настройки и подсказали, в чём дело.
Как исправить 403 Forbidden в NGINX 2 мин для чтения
П ри работе с серверами и веб-ресурсами мы сталкиваемся с ошибками, которые вызываем при обслуживании и настройке. Когда вы сталкиваетесь с такими ошибками, вам необходимо как можно быстрее диагностировать и устранить проблему, чтобы избежать простоев и потери данных.
В этой краткой статье рассматривается типичная ошибка при работе с серверами (403 Forbidden), ее причины и способы ее устранения.
Что такое ошибка Nginx 403?
Ошибка Nginx 403 Forbidden — это код состояния, сгенерированный и отображаемый пользователю, когда клиент пытается получить доступ к части веб-сервера с недостаточными разрешениями. Например, NGINX защищает список каталогов и приведет к ошибке 403.
Причины ошибки Nginx 403 на стороне сервера
Прежде чем мы начнем, стоит отметить, что ошибка может исходить от клиента, а не от самого сервера. Сначала мы рассмотрим ошибки на стороне сервера, а затем ошибки на стороне клиента.
Причина 1: неправильный индексный файл
Самая первая и частая причина ошибки NGINX 403 Forbidden — это неправильная конфигурация индексного файла.
Файл конфигурации Nginx указывает, какие индексные файлы загружать и в каком порядке их загружать. Однако, если указанные индексные файлы отсутствуют в каталоге, Nginx вернет ошибку 403 Forbidden.
Например, конфигурация ниже определяет индексные файлы и способ их загрузки.
location /
Один из способов решения этой проблемы — добавить индексный файл, указанный в файле конфигурации, или добавить доступный индексный файл в файл конфигурации.
Другой способ решить эту проблему — разрешить Nginx отображать каталоги, если индексный файл недоступен. Включите этот модуль, добавив следующую запись в файл конфигурации.
location /
[gn_box title=»Примечание» box_color=»#fff08c» title_color=»#000000″]Мы не рекомендуем этот метод на общедоступных серверах.[/gn_box]
Читать Как проверить информацию о зарегистрированном пользователе с помощью команды Who
Для получения дополнительной информации о том, как обслуживать статический контент, рассмотрите ресурс документации Nginx, представленный ниже:
Причина 2: неправильно настроенные разрешения
ошибка Nginx 403Forbidden также может возникать из-за неверно установленных разрешений для файлов и каталогов. Чтобы Nginx мог успешно передать клиенту определенный файл и ресурс, Nginx должен иметь разрешения RWX — чтение, запись и выполнение — на всем пути.
Чтобы устранить эту ошибку, измените разрешение каталогов на 755 и разрешение файла на 644. Убедитесь, что пользователь, запускающий процесс Nginx, владеет файлами. Например, установите пользователя на www-data:
sudo chown -R www-data:www-data *
Наконец, установите права доступа к каталогу и файлу как:
sudo chmod 755 sudo chmod 644
Причина ошибки на стороне клиента 403
Как уже упоминалось, в других случаях ошибка 403 может быть вызвана пользователем, а не на стороне сервера. Чтобы решить такие проблемы на стороне клиента, выполните следующие операции.
- Убедитесь, что вы получаете доступ к правильному веб-адресу
- Очистить кеш браузера
- Убедитесь, что брандмауэр или прокси-сервер разрешает вам доступ к веб-ресурсу.
Заключение
В этой краткой статье обсуждаются причины ошибки NGIX 403 Forbidden и различные способы ее устранения. Прежде чем пытаться использовать какие-либо методы устранения неполадок, рекомендуется просмотреть журналы сервера.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.