Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx дублирует часть URI при проксировании COPY н а apache+svn
- To: "Konstantin M. Khankin" <nginx-ru@xxxxxxxxx>
- Subject: Re: nginx дублирует часть URI при проксировании COPY н а apache+svn
- From: Gena Makhomed <gmm@xxxxxxxxx>
- Date: Fri, 18 Sep 2009 20:02:11 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csdoc.com; s=dkim; t=1253293553; bh=pqC22QCJdExvFLzBbzktfUyq6Qo+r1IhpH73ErowI7Y=; h=Date:From:X-Mailer:X-Priority:Message-ID:To:Subject:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding; b=X2a++p6vj7EebD9vj5tbQEiYVpfJLbEnXD3+ispKLxHJiEi5H/3vMvssWb+9KVhIH KSIxdVLaGUucyydUDCTvxeDED03Lr9YHiZNqgGYZ0SePIwTRed0T11xs2dqyl8lUmI3 XY8zufqZAPKPqm3SA1m+pfvS/tYLm0VB5JgXWxs=
- In-reply-to: <E1Mofyv-0004Jj-00.homecreate-list-ru@xxxxxxxxxxxx>
- References: <E1Mofyv-0004Jj-00.homecreate-list-ru@xxxxxxxxxxxx>
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
|