Баг с location в nginx-devel-0.7.42 ?

Konstantin Belov belov1985 at gmail.com
Wed Mar 18 01:12:22 MSK 2009


Igor Sysoev wrote:
> On Tue, Mar 17, 2009 at 05:56:39PM +0200, Konstantin Belov wrote:
>
>   
>> Борис Долгов wrote:
>>     
>>> Судя по всему, баг с определением директорий, в 0.7.40 было изменение.
>>>
>>> 17 марта 2009 г. 18:19 пользователь Konstantin Belov 
>>> <belov1985 at gmail.com <mailto:belov1985 at gmail.com>> написал:
>>>
>>>    Борис Долгов wrote:
>>>
>>>        А 0.7.39 работает?
>>>
>>>        17 марта 2009 г. 17:39 пользователь Konstantin Belov
>>>        <belov1985 at gmail.com <mailto:belov1985 at gmail.com>
>>>        <mailto:belov1985 at gmail.com <mailto:belov1985 at gmail.com>>>
>>>        написал:
>>>
>>>
>>>           Борис Долгов wrote:
>>>
>>>               А какая ФС?
>>>
>>>           Система FreeBSD 7.0, fs - UFS.
>>>
>>>           Только не думаю, что проблема в ней. Т. к. на nginx 0.6.35 и
>>>           0.7.33 (да и на всех старых версиях)
>>>           работает нормально. Никаких правок в движок сайта (DLE) и в
>>>        конфиг
>>>           nginx не вносилось уже давно.
>>>           Появилось именно при обновлении до 0.7.42.
>>>
>>>
>>>
>>>
>>>        -- 
>>>        С уважением, Борис Долгов.
>>>        icq 77556665
>>>        e-mail boris at dolgov.name <mailto:boris at dolgov.name>
>>>        <mailto:boris at dolgov.name <mailto:boris at dolgov.name>>
>>>
>>>    telnet 80.93.57.177 80
>>>    Trying 80.93.57.177...
>>>    Connected to gr3.p8.ru <http://gr3.p8.ru>.
>>>    Escape character is '^]'.
>>>    GET /img/topbox_01.gif HTTP/1.0
>>>    host: news.ereality.ru <http://news.ereality.ru>
>>>
>>>    HTTP/1.1 200 OK
>>>    Server: nginx/0.7.39
>>>    Date: Tue, 17 Mar 2009 15:17:21 GMT
>>>
>>>    Content-Type: image/gif
>>>    Content-Length: 67
>>>    Last-Modified: Mon, 18 Aug 2008 16:44:25 GMT
>>>    Connection: close
>>>    Expires: Thu, 16 Apr 2009 15:17:21 GMT
>>>
>>>    Cache-Control: max-age=2592000
>>>    Accept-Ranges: bytes
>>>
>>>    GIF89????????????????!?H???";
>>>    Connection closed by foreign host.
>>>
>>>
>>>    Да, все отлично работает.
>>>
>>>
>>>    /usr/local/sbin/nginx739 -V
>>>    nginx version: nginx/0.7.39
>>>    built by gcc 4.2.1 20070719  [FreeBSD]
>>>
>>>    configure arguments: --prefix=/usr/local/etc/nginx
>>>    --with-cc-opt=-I/usr/local/include --with-ld-opt=-L/usr/local/lib
>>>    --conf-path=/usr/local/etc/nginx/nginx.conf
>>>    --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
>>>    --error-log-path=/var/log/nginx-error.log --user=www --group=www
>>>    --http-client-body-temp-path=/var/tmp/nginx/client_body_temp
>>>    --http-proxy-temp-path=/var/tmp/nginx/proxy_temp
>>>    --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
>>>    --http-log-path=/var/log/nginx-access.log --with-http_ssl_module
>>>    --with-http_stub_status_module --with-http_sub_module
>>>    --add-module=/usr/ports/www/nginx-devel/work/nginx_upload_module-2.0.8
>>>    --add-module=/usr/ports/www/nginx-devel/work/ngx_http_upstream_keepalive-0.1
>>>
>>>
>>>
>>>
>>> -- 
>>> С уважением, Борис Долгов.
>>> icq 77556665
>>> e-mail boris at dolgov.name <mailto:boris at dolgov.name>
>>>       
>> Igor Sysoev wrote:
>>     
>>> Изменения в nginx 0.7.40                                          
>>> 09.03.2009
>>>
>>>    *) Изменение: модуль ngx_http_autoindex_module не показывал последний 
>>>       слэш для каталогов на файловой системе XFS; ошибка появилась в 
>>>       0.7.15.
>>>       Спасибо Дмитрию Кузьменко.
>>>  
>>>       
>> Да, возможно в этом и есть ошибка :)
>>     
>
> А 0.7.40 не работает ? Я пока не могу воспроизвести.
>
>
>   
Собрал nginx 0.7.42 дома под Mac OS X
Ошибка появляется при использовании переменных в root и location с 
regex  (location ~* \.(foo|bar)$ {)

Конфиг:
server {
        listen 127.0.0.1:81;

        location ~* \.(var)$ {
            root /usr/home/www;
            expires      30d;
        }

}


$ telnet 127.0.0.1 81
Trying 127.0.0.1...
Connected to macbook.home.
Escape character is '^]'.
GET /test.var HTTP/1.0

HTTP/1.1 200 OK
Server: nginx/0.7.42
Date: Tue, 17 Mar 2009 21:56:00 GMT
Content-Type: application/octet-stream
Content-Length: 5
Last-Modified: Tue, 17 Mar 2009 21:52:38 GMT
Connection: close
Expires: Thu, 16 Apr 2009 21:56:00 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes

test
Connection closed by foreign host.




А вот при таком конфиге получаем ошибку:


Конфиг:
server {
        listen 127.0.0.1:81;

        set $var "/usr/home/www";

        location ~* \.(var)$ {
            root         $var;
            expires      30d;
        }

}


$ telnet 127.0.0.1 81
Trying 127.0.0.1...
Connected to macbook.home.
Escape character is '^]'.
GET /test.var HTTP/1.0

HTTP/1.1 404 Not Found
Server: nginx/0.7.42
Date: Tue, 17 Mar 2009 21:53:57 GMT
Content-Type: text/html
Content-Length: 169
Connection: close

<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/0.7.42</center>
</body>
</html>
Connection closed by foreign host.


В логе ошибок:
2009/03/17 23:53:57 [error] 6063#0: *9 open() "/usr/home/www/te" failed 
(2: No such file or directory), client: 127.0.0.1, server: macbook.home, 
request: "GET /test.var HTTP/1.0"

Правда под макосью nginx возвращает 404, а не 301 :)



Кстати, при ручной сборке nginx740 -V
nginx version: nginx/0.7.40
built by gcc 4.2.1 20070719  [FreeBSD]
configure arguments: --prefix=/usr/local/etc/nginx 
--with-cc-opt=-I/usr/local/include --with-ld-opt=-L/usr/local/lib 
--conf-path=/usr/local/etc/nginx/nginx740.conf 
--sbin-path=/usr/local/sbin/nginx740 --pid-path=/var/run/nginx740.pid 
--error-log-path=/var/log/nginx-error.log --user=www --group=www 
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp 
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp 
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp 
--http-log-path=/var/log/nginx-access.log --with-http_ssl_module 
--with-http_stub_status_module --with-http_sub_module 
--add-module=/usr/ports/www/nginx-devel/work/nginx_upload_module-2.0.8 
--add-module=/usr/ports/www/nginx-devel/work/ngx_http_upstream_keepalive-0.1

я явно указал конфиг /usr/local/etc/nginx/nginx740.conf, но в итоге 
после make install у меня перезаписался /usr/local/etc/nginx/nginx.conf :(

P. S. рут задается переменными, потому что так легче управлять 
конфигурацией при большом кол-ве шаблоных хостов.





More information about the nginx-ru mailing list