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

Решение проблем, связанных с ошибкой 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
    1. Неправильно установлены разрешения.

    Ошибка 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 в третьей строке первого столбца.

    Мы видим, что рабочий процесс 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 reload 

    3. Ограничения каталогов по 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.

    Дополнительные ресурсы
    • Коды состояния 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.

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

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