Hello! On Sat, Jan 28, 2017 at 04:02:18AM -0500, Дмитрий Герасимов wrote:
> Всем доброго дня. Было задумка добавить авторизацию на все *.php файлы в > админской части сайта. Старый конфиг > > location = /admin/auth { > > userid off; > include /etc/nginx/fastcgi.conf; > > fastcgi_pass php-fpm; > fastcgi_pass_request_body off; > fastcgi_pass SCRIPT_FILENAME ******.php; > } > > > location /admin/ { > > .......... > > location ~ \.php$ { > > try_files $uri =404; > > auth_request /admin/auth; > auth_request_set $saved_set_cookie $upstream_http_set_cookie; > > ......... > } > } > > Это работает, но как только пытаешься отправить форму с загружеными файлами > (файлов может и не быть, главное чтобы у формы стоял атрибут > entype="multipart/form-data") - стабильно 405. И проблема именно а > авторизации. Проверьте внимательно, что именно вы делаете в скрипте, который обрабатывает запросы авторизации. Вероятнее всего он пытается читать тело, и ему становится нехорошо от запросов, в которых вроде как должно быть тело, но на самом деле тела нет. Лечить можно на стороне скрипта - обучить его, что тело читать не надо. Или на стороне nginx'а - убедить скрипт, что тела нет. Для последнего должно хватить простого fastcgi_param HTTP_CONTENT_LENGTH ""; Впрочем, откуда берётся код 405 мне совершенно непонятно, auth_request умеет возвращать только 401, 403 и 500. Разве что в конфиге ещё чего-нибудь накручено, что приводит к попытке перенаправить POST-запрос в статический файл. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru