ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nginx REST



Hello!

On Tue, May 22, 2012 at 03:57:37PM -0400, x00xer wrote:

> возникла так же нобходимость сделать
> RESTfull сервис. 
> nginx настроен  отправлять все запросы к
> PHP в php-fpm сокет:
> 
> 
> location ~ \.php$ {
>    include /etc/nginx/fastcgi_params;
>    fastcgi_pass unix:/tmp/php5-fpm.sock;
>    fastcgi_param SCRIPT_FILENAME /htdocs$fastcgi_script_name;
>    fastcgi_param PATH_INFO $fastcgi_script_name;
>    fastcgi_param DOCUMENT_ROOT /htdocs;
> }
> 
> если с клиента делаю PUT или DELETE в ответ
> получаю:
> 
> спасибо.
> <html>
> <head><title>405 Not Allowed</title></head>
> <body bgcolor="white">
> <center><h1>405 Not Allowed</h1></center>
> <hr><center>nginx</center>
> </body>
> </html>
> 
> 
> каким образом разрешить данные методы
> в nginx'e ?

Отправить таки на обработку в fastcgi.  Для передаваемых на бекенд 
запросов nginx разрешает любые методы, кроме TRACE.  У вас, судя 
по ответу, запрос попадает не на бекенд, а на статический файл.  
Что, в общем, логично: если сервис действительно restfull, то 
привёдённая выше обработка *.php явно недостаточна, надо делать 
как-то так:

   location / {
       fastcgi_pass unix:/tmp/php5-fpm.sock;
       fastcgi_param SCRIPT_FILENAME /htdocs/index.php;
       ...
   }

Maxim Dounin 

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.