Re: nginx дублирует часть URI при проксировании COPY на apache+svn

Gena Makhomed gmm at csdoc.com
Fri Sep 18 21:02:11 MSD 2009


On Friday, September 18, 2009 at 19:06:45, Konstantin M. Khankin wrote:

KMK> Построил следующую архитектуру:
KMK> client(ssl)---(ssl)nginx---apache---svn

KMK> Всё работает нормально, кроме svn move. При попытке выполнения этого запроса получаю 403

KMK> Перехватывал tcpdump'ом общение между nginx и apache -
KMK> обнаружил, что при отправке запроса на 
KMK> apache nginx удваивает первую часть URI (до первого /), что
KMK> приводит к невозможности выполнения 
KMK> некорректного запроса на apache. Дублирование происходит следующим образом:

/svn/tp -> /svn/svn/tp

существует (временный?) workaround: если вместо

location /svn {
        proxy_pass            http://v3.local/svn;

написать

location / {
        proxy_pass            http://v3.local/;

тогда всё работает нормально.

KMK> Конфиг nginx - http://paste.org.ru/?wf7hut

вот этот (вечный?) workaround для баги с полем Destination:

    set $dest $http_destination;
        if ($http_destination ~ "^https://se.item74.ru/(.+)") {
            set $dest http://se.item74.ru/$1;
        }
        proxy_set_header        Destination    $dest;
    }

можно переписать более универсальным способом, без имени хоста:

    set $fixed_destination $http_destination;
    if ( $http_destination ~* ^https(.*)$ )
    {
        set $fixed_destination http$1;
    }
    proxy_set_header Destination $fixed_destination;

-- 
Best regards,
 Gena






More information about the nginx-ru mailing list