v1.0.4, bugreport: location directive

Igor Sysoev igor на sysoev.ru
Вт Июн 28 19:54:27 MSD 2011


On Tue, Jun 28, 2011 at 11:47:07AM -0400, ruv wrote:
> День добрый!
> вылезла странность: неправильно
> отрабатываться один из двух подобных
> запросов.
> 
> я упростил конфиг до минимума — при
> удалении любой "ненужной" строки глюк
> не проявляется. Получается следующее:
> 
> server {
>   listen 127.0.0.11 ;
> 
>   root /temp/test-nginx/pub/ ;
> 
>   location /something  {  }
> 
>   location = /TestPanel/v1/ver.txt  { error_page 405  =200 
> /TestPanel/v1/ver.txt ; }
>   location = /TestPanel/v2/ver.txt  { error_page 405  =200 
> /TestPanel/v2/ver.txt ; }
> 
>   location /TestPanel/v1/xxx/ { }
>   location /TestPanel/v1/yyy/ { }
> }
> 
> Файлы TestPanel/v1/ver.txt и /TestPanel/v2/ver.txt  лежает
> в указанном root.
> 
> запрос 
>   POST http://127.0.0.11/TestPanel/v1/ver.txt
> отрабатывает нормально со статусом 200,
> 
> а запрос
>   POST http://127.0.0.11/TestPanel/v2/ver.txt
> отдает статус 405 Not Allowed
> 
> Это и есть возникший глюк. Пока что
> обошел  директивой error_page 405 =200 $uri;  на
> уровне server (более общее решение). Но
> глюк, вероятно, может вылезти еще
> где-нибудь. Есть подозрение, что дело
> связанно с регистром символов в
> аргументе location.
>
> Платформа: Windows.

Нужен отладочный лог. Под Windows location'ы caseless, но сортировка
дерева делается с учётом case и ошибка может быть связана с этим.


-- 
Igor Sysoev



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