ПРОЕКТЫ 


  АРХИВ 


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]

Экранировани е "?", 0.5.32


  • To: nginx-ru@xxxxxxxxx
  • Subject: Экранировани е "?", 0.5.32
  • From: Andrey Ignatov <andr.pl@xxxxxxxxx>
  • Date: Fri, 26 Oct 2007 14:25:20 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:date:from:to:subject:message-id:mime-version:content-type:content-disposition:content-transfer-encoding:user-agent:x-useless-header; bh=e7n/ZksqNuaqfERj2P2jLltJp+raTNQPAWJBAlb2UXI=; b=if4wZfnMlIeASj7EX13FyLxBAeHbHWExZzvZlygaaMmu+sBskoVGoRaMK3lhpDVfKEH7p+9xv84uJq6aCb4v7cI+5dlRLAMN906ONsJHKe1QLf1fwzv67EJkoFAs9RMd02ia4KNU7c6Lr5IY/9nStcTKEwYG3Iq/XqQpvPhrgIg=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:date:from:to:subject:message-id:mime-version:content-type:content-disposition:content-transfer-encoding:user-agent:x-useless-header; b=RsPv984BLNq999b9QEKaAe6M+ApzklhQsPEEqjMrU6VzBOvbB+mOS7iYEvKPavnTmShbMMj+eiM/UUtrJ4SwiLFqOmGG3xCuw2oq8PzV6qNE/dsGU3bBOl7yJk78V9hu9+ds672tKMIv39l2jeT4vgAXZ/3WPtLD7T5ImMAH/Vo=

re all

Есть вот такой кусок конфига:

...
location /images {
        alias           /usr/local/www/dav/n1;
        if ($request_uri ~ 
"\/(\d+)\/(1|2|3|smallest|small|medium|big)\.(\d+\.(jpg|jpeg|gif|png))$") {     
                     
                set     $user_id        "$1";
                set     $size           "$2";
                set     $photo          "$3";
 
                error_page      404 = 
"/generate/private/create_photo.php?user_id=$user_id&size=$size&photo=$photo&server=10.0.0.17:8181";
        }
}
...
location /generate {
        proxy_pass              http://apache/;
}

Т.е. nginx пытается отдать юзеру тумбу, если тумбы нет, то делается
запрос к срипту генерации на бекенде, который генерит тумбу и возвращает
X-Accel-Redirect.

Если имеем вот такой nginx:

nginx version: nginx/0.5.31
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
--without-http_charset_module --without-http_ssi_module
--without-http_userid_module --without-http_auth_basic_module
--without-http_autoindex_module --without-http_map_module
--without-http_referer_module --without-http_fastcgi_module
--without-http_memcached_module --without-http_limit_zone_module
--without-http_browser_module --without-http_upstream_ip_hash_module
--with-debug
--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_dav_module
--with-http_stub_status_module

То все нормально и в дебаг-логе видно, что на бекенд (который должен
сгенерить тумбу) уходит вот такое:

2007/10/26 09:43:17 [debug] 13153#0: *1 http proxy header:
"GET 
//private/create_photo.php?user_id=1179035&size=small&photo=123.jpeg&server=10.0.0.17:8181
 HTTP/1.0
Host: domain.com
Connection: close

"

Обратите внимание - имя скрипта и гет-параметры разделены знаком "?".

Если же ставлю:
nginx version: nginx/0.5.32
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
--without-http_charset_module --without-http_ssi_module
--without-http_userid_module --without-http_auth_basic_module
--without-http_autoindex_module --without-http_map_module
--without-http_referer_module --without-http_fastcgi_module
--without-http_memcached_module --without-http_limit_zone_module
--without-http_browser_module --without-http_upstream_ip_hash_module
--with-debug
--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_dav_module
--with-http_stub_status_module


то получаю:

2007/10/26 10:01:59 [debug] 15423#0: *1 http proxy header:
"GET 
//private/create_photo.php%3fuser_id=1179035&size=2&photo=123.jpeg&server=10.0.0.17:8181
 HTTP/1.0
Host: domain.com
Connection: close

"

Обратите внимание - "?" уже заменился nginx'ом на "%3f".
В 0.5.32 были проведены работы по экранированию символов. Возможно
что-то поломалось ?



-- 
Andrey Ignatov
Skript, System administrator



 




Copyright © Lexa Software, 1996-2009.