Решение проблем, связанных с ошибкой 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»
Ошибка 403 forbidden nginx 1.
4 6 UbuntuОшибка 403 forbidden nginx означает что вы запросили ресурс у сервера, который он не может отправить, потому что у вас недостаточно прав для его просмотра. Фактически, это даже не ошибка, это сообщение HTTP 4xx, которое всего лишь сообщает, что у вас нет доступа к определенному контенту.
Достаточно часто такие сообщения показывается пользователям, потому что они были заблокированы на сайте или попытались получить доступ к файлу, который доступен только локально. В этой статье мы попытаемся разобраться со случаями, когда появление 403 forbidden nginx 1.4 6 Ubuntu не желательно и представляет из себя ошибку, которую веб-мастер или системный администратор должен решить. Но сначала рассмотрим основные причины почему вы можете видеть это сообщение.
Содержание статьи:
Ошибка 403 Forbidden Nginx
Итак, ошибка 403 forbidden nginx 1.4 6 Ubuntu может возникать в таких случаях:
- Пользователь заблокирован на сервере с помощью директивы deny в конфигурации nginx;
- Доступ к данному ресурсу разрешен только с определенного IP адреса;
- Пользователь пытается получить доступ к папке, отображение содержимого которой запрещено;
- Nginx не может прочитать содержимое запрашиваемого файла в файловой системе;
- Файл index не найден в каталоге.
Это основные причины, которые встречаются наиболее часто. Как видите, две последние из них представляют из себя проблему. Рассмотрим как ее решить.
Неверно выставлены права
Если права на файл, который пытается получить пользователь выставлены неправильно, то будет выдана такая ошибка. Необходимо, чтобы у Nginx были права не только на чтение этого файла, но и на чтение все родительских каталогов. Это можно проверить командой:
namei -l /var/www/public_html/index.html
Для всех элементов пути должен быть установлен флаг «r», чаще всего лучше подходят права 644, то есть, владелец может все, а группа и остальные только читать. Если права не соответствуют, то вы нашли проблему и осталось только исправить права с помощью chmod. Например:
chmod 644 /var/www/public_html/index.html
Вот так должно быть:
Также обратите внимание на владельца файлов и папок. Если nginx должен иметь возможность выполнять туда запись, то, возможно есть смысл сделать владельцем пользователя nginx или позже получите другую ошибку. Также, если с правами все хорошо, но ошибка не решена попробуйте отключить SELinux, возможно, эта служба мешает Nginx получить доступ к файлам.
Если вы используете PHP и получаете такую ошибку, то еще нужно проверить может ли Nginx получить доступ к сокету обработчика PHP. Желательно, чтобы php-fpm запускался с той же группой, что и nginx, потому что права, по умолчанию, для доступа к сокету 660 (для группы и для владельца). Поэтому проверьте поля listen.owner и listen.group в файле /etc/php5/fpm/php-fpm.conf.
Также можно попытаться использовать сетевой сокет и подключаться к порту, а не файлу.
Неверно настроен index
Файл index открывается по умолчанию при запросе папки на сервере, в которой он находится. Если такого файла в папке нет или он настроен неправильно в конфигурационном файле nginx, то программа попытается отобразить содержимое папки, а это по умолчанию запрещено, поэтому вы получите 403 Foribden.
Чтобы решить проблему убедитесь, что файл index. html, index.php или как он у вас называется, находится в нужно папке, в той, которую вы запрашиваете. Проверьте конфигурационный файл и убедитесь, что в нем указана директива Index с правильным именем и расширением файла:
Если в директиве указаны только файлы html, а вы используете php, то уже понятно почему программа не может найти то, что нужно. Просто добавьте имя файла в директиву:
index index.html index.htm index.php;
Точно так же, если вы использовали python скрипт, то нужно добавить его расширение.
Выводы
В этой статье мы рассмотрели почему возникает ошибка 403 forbidden nginx 1.4 6 Ubuntu и пути ее решения. Это наиболее частые причины, с которыми сталкиваются пользователи и попробовав все это, скорее всего, вы решите свою проблему. Если у вас остались вопросы, спрашивайте в комментариях!
DigitalOcean 403 Forbidden NGINX Error
Когда клиент пытается получить доступ к части веб-сервера с недостаточными разрешениями, генерируется и отображается пользователю ошибка Nginx 403 Forbidden.
Давайте посмотрим, как наша служба технической поддержки починила it:
- Проверьте, работает ли nginx.
systemctl status nginx
Вы должны увидеть что-то вроде этого, если nginx запущен и работает:
nginx.service — HTTP-сервер nginx Загружено: загружено (/lib/systemd/system/nginx.service; включено; предустановка поставщика: включена) Активно: активно (работает) со вт 19.11.2019 09:37:46 UTC; 2 дня спустя Документы: https://httpd.nginx.org/docs/2.4/
Если nginx не запущен, вывод будет следующим:
nginx.service — HTTP-сервер nginx загружен: загружен (/lib/systemd/ system/nginx.service; включен; предустановка поставщика: включена) Активен: неактивен (мертв) с пт 2019-11-22 08:41:01 UTC; 39s назад Документы: https://httpd.nginx.org/docs/2.4/
- Если nginx еще не запущен, вы можете запустить его, набрав:
systemctl start nginx
Затем дважды проверьте статус чтобы убедиться, что nginx все еще работает.
- Если nginx не удалось запустить после перезагрузки, вы можете разрешить ему запускаться при следующей перезагрузке:
systemctl enable nginx
Проверьте синтаксис конфигурации nginx:
nginx -t
Если вы получили ошибка, вы должны сначала решить проблему перед перезапуском nginx:
systemctl перезапустить nginx
- Если вы получаете Syntax OK при запуске nginx -t , ваша конфигурация верна, поэтому проверьте журналы ошибок:
tail -f /var/log/nginx/error.log
- Проверьте права доступа к файлам и папкам в корневом каталоге вашего документа:
Рассмотрим пользователя, под которым работает ваша служба nginx:
ps auxf | grep nginx
Если вы используете Ubuntu, пользователь должен быть www-data, поэтому убедитесь, что ваши файлы и папки куплены этим пользователем, чтобы nginx мог читать и писать в них:
chown -R www-data:www-data /var/www/yourdomain. com
- Затем посмотрите, использует ли nginx порты по умолчанию:
netstat -plant | grep '80\|443'
- Наконец, подтвердите, разрешает ли ufw TCP-соединения на портах 80 и 443:
ufw status
Другие проблемы с сервером:
- 72 Incorrect 90 The Index File is10
- Неправильно установлены разрешения.
- Убедитесь, что вы пытаетесь получить доступ к целевому веб-сайту
- Очистите кеш в вашем браузере.
- Убедитесь, что вы можете получить доступ к веб-ресурсу через брандмауэр или прокси-сервер.
- Коды состояния HTTP на W3C
- Ошибка Установки подключения к базе данных в WordPress Fix
- Исправлено 502 Bad Gateway Nginx ошибка nginx in ubuntu 12
- Исправление: 504 Timeout Timeout nginx nginx
- : 504 шлюз.
- PHP5-FPM 502 Bad Gateway Error (ошибка подключения() к unix:/var/run/php5-fpm.
Ошибка 403: Причина на стороне клиента
Как указывалось ранее, ошибка 403 также может быть вызвана пользователем, а не сервером. Выполните основные операции на стороне клиента, чтобы исправить такие проблемы.
Вы ищете ответ на другой вопрос? Свяжитесь с нашей службой технической поддержки.
Как исправить ошибку 403 Forbidden в NGINX Ubuntu
Ошибка 403 Forbidden является наиболее распространенной ошибкой, возникающей при работе на веб-сервере Nginx. Но в большинстве случаев это не связано с самим Nginx. Ошибка 403 Forbidden означает, что у вас нет прав доступа к определенному каталогу или веб-странице. Эта ошибка может быть вызвана многими причинами. И в этой статье мы определим источник ошибки, а затем узнаем, как ее исправить.
+
О 403 Ошибка
Давайте разберемся в деталях ошибки «403 Forbidden».
«403 Forbidden» — это ошибка, указывающая на то, что вы запросили что-то, что NGINX не может предоставить. Эта ошибка на самом деле является кодом состояния HTTP, который просто означает, что веб-сервер получил и понял сделанный запрос, но не может его обработать.
4 способа исправить ошибку 403 Forbidden 1. Неправильные права доступа к каталогу или файлуНеправильные права доступа к файлу являются одной из наиболее распространенных причин этой ошибки «403 Forbidden». В случае NGINX стандартные настройки разрешений для каталогов и файлов равны 9.0005 755 и 644 соответственно. Более того, пользователь NGINX также должен быть владельцем каталога и файлов.
Идентификация пользователя NGINX
Для начала нам нужно определить пользователя NGINX. Чтобы проверить пользователя, выполните:
ps -ef | grep nginx
Вывод:
userwv+ 6016 26683 0 19:28 ttyS0 00:00:00 grep --color=auto nginx корень 26734 1 0 март 20 ? 00:00:00 nginx: главный процесс /usr/sbin; www-данные 2673926734 0 20 марта ? 00:01:53 nginx: рабочий процесс
В нашем случае мы можем определить рабочий процесс NGINX в третьей строке первого столбца.
www-data
.Установить владельца файла
Поскольку мы уже знаем, что стандартное разрешение для каталога в случае Nginx — 755 , а для файла — 644. Нам нужно установить владельца файла.
Например, если корневая папка вашего сайта /var/www/html/example.com/public_html/
, запустите:
+
sudo chown -R www-data:www-data /var/www/html/example.com/public_html/
Установить права доступа к каталогу
Теперь нам нужно установить разрешения 755 для каждого каталога в этом месте.
sudo chmod 755 [имя каталога]
В нашем случае нам нужно установить разрешение на каталог example.com . Для этого запустите:
sudo chmod 755 example.com
Теперь перейдите в корневой каталог веб-сайта, выполнив:
cd example.com
Теперь измените права доступа к файлу на 644 , выполнив:
sudo chmod 644 *2. Неверный индексный файл 16
Ошибка «403 Forbidden» может появиться, если индексный файл установлен неправильно.
+
Перейдите к файлу конфигурации NGINX и проверьте, обновили ли вы правильный индексный файл или нет. Для этого откройте наш файл конфигурации NGINX для example.com , выполнив:
sudo vim /etc/nginx/sites-available/example.com
Например, если вы используете веб-сайт на основе WordPress, внутри блока сервера ваш индекс должен быть:
индекс index.php;
Если вы используете веб-сайт на основе HTML, ваш файл по умолчанию должен иметь расширение .html
. например,
index index.html;
Возможно, вы забыли добавить эту строку на сервер 9Блок 0154. Если вы включили эту строку кода, вы должны проверить, правильно ли вы ее написали.
Кроме того, вы также должны помнить, что эти имена файлов чувствительны к регистру. Если имя файла по умолчанию — index.html , но имя файла, упомянутое в конфигурации NGINX, — Index.html , это вызовет ошибку «403 Forbidden».
Если вы используете веб-приложение, которое NGINX не может распознать, вы можете отредактировать файл конфигурации и добавить расширение файла.
Например, если вы используете приложение на основе Python, вы можете добавить index.py в список распознаваемых индексных файлов:
index index.py;
Если вы используете веб-приложение, использующее несколько языков программирования, вы можете добавить:
index index.php index.html index.py;
Теперь обновите изменения в файле конфигурации и перезапустите NGINX, выполнив:
sudo nginx -s reload
или
sudo service nginx restart
Autoindex
Это альтернативное решение, которое полезно, если у вас нет файла индекса или NGINX не находит файл индекса.
Сервер просканирует и перечислит все содержимое корневого каталога вашего веб-сайта методом autoindex
. Но из соображений безопасности индекс каталогов в NGINX по умолчанию отключен.
Вы можете включить эту функцию, просто изменив несколько строк кода. Вам просто нужно включить и включить автоиндекс
и autoindex_exact_size
соответственно.
автоиндекс включен; autoindex_exact_size выключен;
Теперь вы можете добавить эти конфигурации в блок location . Окончательный результат будет выглядеть так:
местоположение / { [существующие конфигурации, если применимо] включен автоиндекс; autoindex_exact_size выключен; }
Чтобы активировать индексацию каталога для некоторых других каталогов, вы можете добавить косую черту (/) , а затем имя каталога . Например:
расположение /некоторый_каталог { включен автоиндекс; autoindex_exact_size выключен; }
Теперь сохраните изменения и перезагрузите NGINX.
sudo nginx -s reload3. Ограничения каталогов по IP
В файле nginx.conf
проверьте, не применяли ли вы правило разрешить/запретить , которое может блокировать вашу сеть. Например:
местоположение / { # заблокировать компьютер Oxygen. запретить 192.168.1.1; # разрешить кому-либо еще в 192.168.1.0/24 разрешить 192.168.1.0/24; # отбрасываем остальные соединения отрицать все; }4. Нет индексных файлов
Это может быть глупейшей ошибкой, если у вас нет имени файла 'index (index.php, index.html, index.py)' внутри корневого каталога вашего веб-сайта. Это также может быть причиной того, что ваш сайт выдает ошибку 403 Forbidden Error.
Дополнительные ресурсыВы также можете проверить некоторые другие исправления: