auth_request + multipart/form-data

Дмитрий Герасимов nginx-forum на forum.nginx.org
Сб Янв 28 09:02:18 UTC 2017


Всем доброго дня. Было задумка добавить авторизацию на все *.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. И проблема именно а
авторизации.

На скорую руку залатал следующим конфигом


location = /admin/auth { #авторизация

	internal;
	
	set $target  http://$server_name/***.php;
	
	
	proxy_method GET;
	proxy_http_version 1.1;
	proxy_pass_request_body off;
        proxy_set_header Host $host;
        proxy_set_header Content-Length "";
	proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Original-URI $request_uri;
	proxy_pass $target;
}


location = /***.php {
    
	userid off;
	include /etc/nginx/fastcgi.conf;
	
        fastcgi_pass php-fpm;
	fastcgi_pass_request_body off;
}

Но хочется избавится от этого костыля. Заранее благодарен

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,272171,272171#msg-272171



Подробная информация о списке рассылки nginx-ru