proxying to apache/svn, COPY fails, but without HTTPS

Samuel Vogel samydelux at gmail.com
Wed Aug 12 14:18:23 MSD 2009


Am 10.08.09 16:50, schrieb Samuel Vogel:
> Hey guys,
>
> We proxy http://svn.domain.com:80 to http://localhost:81, where an 
> apache server with mod_dav_svn is listening, which is binding only to 
> 127.0.0.1:81.
> We do get a "502 Bad Gateway" for COPY requests. This topic came up a 
> couple of times on the list, but issues with HTTPS vs. HTTP always 
> caused the problems.
> This is however not the case with out setup, the SVN client uses HTTP 
> and we proxy to the backend via HTTP.
>
> Our nginx config:
> server {
>     listen   80;
>     server_name svn.domain.com;
>
>     location / {
>         proxy_pass http://localhost:81;
>     }
> }
>
> Apache config:
> Listen 127.0.0.1:81
>
>     ServerName svn.domain.com
>     UseCanonicalName On
>
> <Location />
>         DAV svn
>         SVNParentPath "/var/lib/svn"
> </Location>
>
> Any hints how this could be solved?
>
> Regards,
> Samy
I have now changed my nginx config as follows:

server {
     listen   80;
     server_name svn.domain.com;

     location / {
         set $dest $http_destination;
         if ($http_destination ~ "^http://svn.domain.com/(.+)") {
             set $dest http://localhost:81/$1;
         }

         proxy_set_header Destination $dest;

         proxy_pass http://localhost:81;
     }
}

Now the COPY Request looks as follows (captured with tcpdump):
COPY /tourvital/!svn/bc/120/trunk HTTP/1.0
Destination: 
http://localhost:81/tourvital/!svn/wrk/0200ab05-2301-0010-93d2-4be8b1bacda6/branches/test
Host: localhost:81

Shouldn't this be working?

Regards,
Samy





More information about the nginx mailing list