ПРОЕКТЫ 


  АРХИВ 


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]

? -> %3f при передаче на бэкенд


  • To: nginx-ru@xxxxxxxxx
  • Subject: ? -> %3f при передаче на бэкенд
  • From: "Igor Zakharov" <garikz@xxxxxxxxx>
  • Date: Wed, 6 Feb 2008 19:45:01 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=0BMp3QNUruzP2ky2YPqR2qyEi3k6vuEWlZO3hkR/VPM=; b=qxQeMpJuiuqvM1nEhGUMK78/vJndTMtvG7WeGK9/Enz08KpGptUSfZ9nEYXHAxxmygcGqkm8TogA4+aoGyL5LdwijzL78OB0n8Xfb+MRPQ8HZoultdShw7OXYU0eLCdbkJrkqigmFEXJLk6c7BDn7rqrCPhq5X8qhLT7i6F5lqk=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=v1GKvvDhStyaHKpxl8EuXbSj8iYFZYaS54u9pkBnIFvzeFHidf7bASizinWhkyjzofLR47y+tfPBrHICAn+Oqr6xCuFko+ZQBxN1tUfnu9B8zda7/X67ZWtJJIcHZ7NmX2giyOe30edvXfwz1usdI93uEyoOmEr2Ubbay8eXv0Y=

Всем привет, опять столкнулся с той же проблемой с экранированием. nginx 0.5.35

Имеем запрос /cgi-bin/script.pl?a=b

Если nginx не находит предварительно сгенеренный /Data/static/$host/script.pl_a_b (ну, к примеру, для этого виртхоста него нет), то он обращается к memcached.
И вот если и там такого ключа нет, то идет обращение на бэкенд. Тут и начинается самое интересное.
На бэкенд передается запрос GET /cgi-bin/script.pl%3fa=b

Кусок конфига:

if ($request_uri = '/cgi-bin/script.pl?a=b') {
    rewrite ^(.*)$ /static/script.pl_a_b? last;
}

location = /static/script.pl_a_b {
    if ($request_method = POST) {
        rewrite ^(.*)$ $request_uri;
        proxy_pass http://backend;
    }

    if (!-e /Data/static/$host/script.pl_a_b) {
        rewrite ^(.*)$ /memcached_generic;
    }

    types { }
    default_type text/html;
    alias /Data/static/$host/script.pl_a_b;
    internal;
}

location = /memcached_generic {
    set $memcached_key "$host$request_uri";
    memcached_pass memcached;
    error_page 404 502 504 405 = @fallback;
}

location @fallback {
    rewrite ^(.*)$ $request_uri break;
    proxy_set_header Host $host;
    proxy_pass http://backend;
}



 




Copyright © Lexa Software, 1996-2009.