Ошибка Nginx 405 Not Allowed

Игорь Грегорченко

Nginx выдает ошибку 405 Not Allowed, если для доступа к файлам используется запрещенный или неподдерживаемый метод. В большинстве случаев это POST, который в Nginx запрещен для доступа к статическим файлам.

Для решения проблемы можно использовать один из двух подходов.

Обход ограничения

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

server {
     listen 80;
     server_name localhost;

location / {
          root html;
          index index.html index.htm;
}

     error_page 404 /404.html;
     error_page 403 /403.html;

error_page 405 =200 $uri;

     # ...
}

# Передает ошибку 405 как код 200 на нужный адрес

А если Nginx работает как прокси, скажем, для Apache, то можно схитрить так:

error_page 405 =200 @405;

location @405 {
     root /htdocs;
     proxy_pass http://localhost:8080;
}

# Перенаправляет запрос на proxy

Когда используется FastCGI

Если в Nginx используется модуль FastCGI, то в некоторых случаях веб-сервер может некорректно воспринимать скрипты, которые вызываются методом POST. Для этого запрашиваемый URL разбивается на адрес самого скрипта и запрашиваемых параметров:

location ~.php(.*) {
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_split_path_info ^(.+.php)(.*)$;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param PATH_INFO $fastcgi_path_info;
          fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
          include /etc/nginx/fastcgi_params;
}

#Директива fastcgi_split_path_info определяет формат скрипта и параметры разделения

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023