Maxim Dounin
August 13, 2010 08:46AM
Hello!

On Fri, Aug 13, 2010 at 01:18:37PM +0300, Vasil Mikhalenya wrote:

> Привет всем,
>
> заметил странности в поведении дерективы alias, а точнее необъяснимое
> поведение
>
> 2010/08/13 12:05:03 [error] 28688#0: *89 opendir()
> "/opt/gptour/web-app-stat/gptour/*uploa*" failed (2: No such file or
> directory), client: ipaddress, server: blabla.com, request: "GET /upload/
> HTTP/1.0", host: "blabla.com"
>
> в конфиге
>
> location ~* ^/upload {
> autoindex on;
> expires max;
> alias /opt/gptour/web-app-stat/gptour/upload;

В location'е, заданном регулярным выражением, alias задаёт полный
путь к файлу. Потому как иначе - никак, это вам не prefix match
где alias заменяет root + префикс uri который совпал с
location'ом, тут понятия "префикс который совпал" не существует.

В данном случае - мы видим проблему в модуле autoindex, который
видит запрос на индекс, и пытается "убрать" слэш из пути (а в
пути-то слеша и нет...).

Но даже если эту проблему исправить - любой запрос к
/upload/something будет пытаться открыть каталог
/opt/gptour/web-app-stat/gptour/upload. Вероятно это не то чего
хотелось добиться.

> Соответсвенно отдается 404.
>
> Заметил это, когда хотел несколько алььтернатив в регулярке добавить в один
> location.
> директива root работает нормально, но тогда нужно несколько одинаковых
> location.
>
> Еще пример:
>
> ==> /var/log/nginx/error.log <==
> 2010/08/13 12:09:55 [error] 29076#0: *148
> "/opt/gptour/web-app-stat/gptour/upload*0* <-- тут перенос строки в логе
> *Hostindex.html*" is not found (2: No such file or directory), client:
>
> если в конфиге
>
> location ~* ^/(upload|files) {
> autoindex on;
> expires max;
> alias /opt/gptour/web-app-stat/gptour/upload;

- alias /opt/gptour/web-app-stat/gptour/upload;
+ alias /opt/gptour/web-app-stat/gptour/upload$uri;

Или, что лучше, используйте статические location'ы. Регулярные
выражения в данном случае нафиг не нужны.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

alias vs root with re location

Vasil Mikhalenya August 13, 2010 06:20AM

Re: alias vs root with re location

Sergey Shepelev August 13, 2010 06:40AM

Re: alias vs root with re location

Vasil Mikhalenya August 13, 2010 08:06AM

Re: alias vs root with re location

Sergey Shepelev August 13, 2010 08:28AM

Re: alias vs root with re location

Лазовский Вадим August 13, 2010 08:38AM

Re: alias vs root with re location

Vasil Mikhalenya August 13, 2010 08:44AM

Re: alias vs root with re location

Maxim Dounin August 13, 2010 08:46AM

Re: alias vs root with re location

Vasil Mikhalenya August 13, 2010 08:52AM

Re: alias vs root with re location

Maxim Dounin August 13, 2010 08:56AM

Re: alias vs root with re location

Vladimir Sopot August 13, 2010 05:50PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 229
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready