You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Jim Gifford <ma...@jg555.com> on 2006/05/25 18:59:38 UTC

[users@httpd] mod_proxy and subversion - Long

I'm trying to force mod_proxy to send all the subversion writes to a 
specific server. What gets me is an error in my debug log.

   1.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
   2.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(1531): proxy:
      start body send
   3.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(1591): proxy: end
      body send
   4.
      [Wed May 24 12:12:33 2006] [error] [client 172.16.0.85] Access
      denied: - CHECKOUT cross-lfs:/trunk
   5.
      [Wed May 24 12:12:33 2006] [info] [client 172.16.0.85] Access
      granted: - DELETE cross-lfs:
   6.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL
      //svn.cross-lfs.org/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642

Anyone got any suggestions?

Here is the error I'm seeing
# svn commit -m "Testing of SVN Mirroring"
Adding         testfile
svn: Commit failed (details follow):
svn: CHECKOUT of '/svn/repos/cross-lfs/!svn/ver/1683/trunk': 403 
Forbidden (http://svn.jg555.com)

Here is my config for this setup
<Location /svn/repos>
 <Limit GET PROPFIND OPTIONS REPORT>
       DAV svn
       SVNParentPath /srv/svn
       SVNIndexXSLT /svnindex.xsl
       AuthzSVNAccessFile /etc/svn/svn_auths
       Satisfy Any
       Require valid-user
       AuthType Basic
       AuthName "Subversion Repository"
       AuthUserFile /etc/svn/svn_users
 </Limit>
 <LimitExcept GET PROPFIND OPTIONS REPORT>
       ProxyPass http://svn.cross-lfs.org/svn/repos
       ProxyPassReverse http://svn.cross-lfs.org/svn/repos
</LimitExcept>
</Location>

Here is the access log
72.16.0.85 - - [24/May/2006:12:12:32 -0700] "OPTIONS 
/svn/repos/cross-lfs/trunk HTTP/1.1" 200 199
172.16.0.85 - - [24/May/2006:12:12:32 -0700] "MKACTIVITY 
/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642 
HTTP/1.1" 201 405
172.16.0.85 - - [24/May/2006:12:12:32 -0700] "PROPFIND 
/svn/repos/cross-lfs/trunk HTTP/1.1" 207 460
172.16.0.85 - - [24/May/2006:12:12:32 -0700] "PROPFIND 
/svn/repos/cross-lfs/!svn/vcc/default HTTP/1.1" 207 423
172.16.0.85 - - [24/May/2006:12:12:32 -0700] "CHECKOUT 
/svn/repos/cross-lfs/!svn/bln/1683 HTTP/1.1" 201 422
172.16.0.85 - - [24/May/2006:12:12:32 -0700] "PROPPATCH 
/svn/repos/cross-lfs/!svn/wbl/db477384-8d14-0410-80c9-dc85ce4b3642/1683 
HTTP/1.1" 207 367
172.16.0.85 - - [24/May/2006:12:12:32 -0700] "PROPFIND 
/svn/repos/cross-lfs/trunk HTTP/1.1" 207 419
172.16.0.85 - - [24/May/2006:12:12:33 -0700] "CHECKOUT 
/svn/repos/cross-lfs/!svn/ver/1683/trunk HTTP/1.1" 403 1071
172.16.0.85 - - [24/May/2006:12:12:33 -0700] "DELETE 
/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642 
HTTP/1.1" 204 -

Here is the debug log

   1.
      [Wed May 24 12:12:32 2006] [info] [client 172.16.0.85] Access
      granted: - OPTIONS cross-lfs:/trunk
   2.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL //svn.cross-lfs.org/svn/repos/cross-lfs/trunk
   3.
      [Wed May 24 12:12:32 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
   4.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL http://svn.cross-lfs.org/svn/repos/cross-lfs/trunk
   5.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting http://svn.cross-lfs.org/svn/repos/cross-lfs/trunk to
      svn.cross-lfs.org:80
   6.
      [Wed May 24 12:12:32 2006] [debug] proxy_util.c(1139): proxy:
      HTTP: fam 2 socket created to connect to svn.cross-lfs.org
   7.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(336): proxy:
      socket is connected
   8.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(370): proxy:
      connection complete to 209.172.44.8:80 (svn.cross-lfs.org)
   9.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1531): proxy:
      start body send
  10.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1591): proxy: end
      body send
  11.
      [Wed May 24 12:12:32 2006] [info] [client 172.16.0.85] Access
      granted: - MKACTIVITY cross-lfs:
  12.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL
      //svn.cross-lfs.org/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642
  13.
      [Wed May 24 12:12:32 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
  14.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642
  15.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642
      to svn.cross-lfs.org:80
  16.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
  17.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1531): proxy:
      start body send
  18.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1591): proxy: end
      body send
  19.
      [Wed May 24 12:12:32 2006] [info] [client 172.16.0.85] Access
      granted: - PROPFIND cross-lfs:/trunk
  20.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL //svn.cross-lfs.org/svn/repos/cross-lfs/trunk
  21.
      [Wed May 24 12:12:32 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
  22.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL http://svn.cross-lfs.org/svn/repos/cross-lfs/trunk
  23.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting http://svn.cross-lfs.org/svn/repos/cross-lfs/trunk to
      svn.cross-lfs.org:80
  24.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
  25.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1531): proxy:
      start body send
  26.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1591): proxy: end
      body send
  27.
      [Wed May 24 12:12:32 2006] [info] [client 172.16.0.85] Access
      granted: - PROPFIND cross-lfs:
  28.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL
      //svn.cross-lfs.org/svn/repos/cross-lfs/!svn/vcc/default
  29.
      [Wed May 24 12:12:32 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
  30.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/vcc/default
  31.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/vcc/default to
      svn.cross-lfs.org:80
  32.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
  33.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1531): proxy:
      start body send
  34.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1591): proxy: end
      body send
  35.
      [Wed May 24 12:12:32 2006] [info] [client 172.16.0.85] Access
      granted: - CHECKOUT cross-lfs:
  36.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL
      //svn.cross-lfs.org/svn/repos/cross-lfs/!svn/bln/1683
  37.
      [Wed May 24 12:12:32 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
  38.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/bln/1683
  39.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/bln/1683 to
      svn.cross-lfs.org:80
  40.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
  41.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1531): proxy:
      start body send
  42.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1591): proxy: end
      body send
  43.
      [Wed May 24 12:12:32 2006] [info] [client 172.16.0.85] Access
      granted: - PROPPATCH cross-lfs:
  44.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL
      //svn.cross-lfs.org/svn/repos/cross-lfs/!svn/wbl/db477384-8d14-0410-80c9-dc85ce4b3642/1683
  45.
      [Wed May 24 12:12:32 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
  46.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/wbl/db477384-8d14-0410-80c9-dc85ce4b3642/1683
  47.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/wbl/db477384-8d14-0410-80c9-dc85ce4b3642/1683
      to svn.cross-lfs.org:80
  48.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
  49.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1531): proxy:
      start body send
  50.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1591): proxy: end
      body send
  51.
      [Wed May 24 12:12:32 2006] [info] [client 172.16.0.85] Access
      granted: - PROPFIND cross-lfs:/trunk
  52.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL //svn.cross-lfs.org/svn/repos/cross-lfs/trunk
  53.
      [Wed May 24 12:12:32 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
  54.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL http://svn.cross-lfs.org/svn/repos/cross-lfs/trunk
  55.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting http://svn.cross-lfs.org/svn/repos/cross-lfs/trunk to
      svn.cross-lfs.org:80
  56.
      [Wed May 24 12:12:32 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
  57.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(1531): proxy:
      start body send
  58.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(1591): proxy: end
      body send
  59.
      [Wed May 24 12:12:33 2006] [error] [client 172.16.0.85] Access
      denied: - CHECKOUT cross-lfs:/trunk
  60.
      [Wed May 24 12:12:33 2006] [info] [client 172.16.0.85] Access
      granted: - DELETE cross-lfs:
  61.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(67): proxy: HTTP:
      canonicalising URL
      //svn.cross-lfs.org/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642
  62.
      [Wed May 24 12:12:33 2006] [debug] mod_proxy.c(454): Trying to run
      scheme_handler
  63.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(1697): proxy:
      HTTP: serving URL
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642
  64.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(186): proxy: HTTP
      connecting
      http://svn.cross-lfs.org/svn/repos/cross-lfs/!svn/act/db477384-8d14-0410-80c9-dc85ce4b3642
      to svn.cross-lfs.org:80
  65.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(268): proxy:
      keepalive address match (keep original socket)
  66.
      [Wed May 24 12:12:33 2006] [debug] proxy_http.c(1594): proxy:
      header only



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_proxy and subversion - Long

Posted by Rainer Sokoll <R....@intershop.de>.
On Thu, May 25, 2006 at 09:59:38AM -0700, Jim Gifford wrote:

Hi,

> I'm trying to force mod_proxy to send all the subversion writes to a 
> specific server. What gets me is an error in my debug log.

>      [Wed May 24 12:12:33 2006] [error] [client 172.16.0.85] Access
>      denied: - CHECKOUT cross-lfs:/trunk
>   5.
>      [Wed May 24 12:12:33 2006] [info] [client 172.16.0.85] Access
>      granted: - DELETE cross-lfs:

Not sure: does mod_proxy support DAV extensions to HTTP?

Rainer

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_proxy and subversion - Long

Posted by Joshua Slive <jo...@slive.ca>.
On 5/25/06, Jim Gifford <ma...@jg555.com> wrote:
> Joshua Slive wrote:
> > On 5/25/06, Jim Gifford <ma...@jg555.com> wrote:
> >
> > I haven't checked the code, but I doubt <Limit> can be used in that
> > way.  It works only for auth directives.
> >
> > You can, however, accomplish this by using the proxy [P] flag of
> > mod_rewrite.

>
> Joshua, would you mind providing me an example?

Leave the existing <Limit> section, but take out the <LimitExcept>
section and put this outside the <Location> section:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(GET|PROPFIND|OPTIONS|REPORT)$
RewriteRule /svn/repos(.*) http://svn.cross-lfs.org/svn/repos$1 [P]
ProxyPassReverse /svn/repos http://svn.cross-lfs.org/svn/repos

Use the RewriteLog to debug when you run into problems.

But you may want to check on the subversion lists how much luck people
really have doing this kind of reverse proxying.  There may be
hard-coded hostnames inside the xml returned by mod_dav_svn that
ProxyPassReverse will not rerwrite.

Joshua.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_proxy and subversion - Long

Posted by Jim Gifford <ma...@jg555.com>.
Joshua Slive wrote:
> On 5/25/06, Jim Gifford <ma...@jg555.com> wrote:
>
> I haven't checked the code, but I doubt <Limit> can be used in that
> way.  It works only for auth directives.
>
> You can, however, accomplish this by using the proxy [P] flag of 
> mod_rewrite.
>
> Joshua.
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server 
> Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>

Joshua, would you mind providing me an example?

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_proxy and subversion - Long

Posted by Joshua Slive <jo...@slive.ca>.
On 5/25/06, Jim Gifford <ma...@jg555.com> wrote:
> I'm trying to force mod_proxy to send all the subversion writes to a
> specific server. What gets me is an error in my debug log.
>

> Here is my config for this setup
> <Location /svn/repos>
>  <Limit GET PROPFIND OPTIONS REPORT>
>        DAV svn
>        SVNParentPath /srv/svn
>        SVNIndexXSLT /svnindex.xsl
>        AuthzSVNAccessFile /etc/svn/svn_auths
>        Satisfy Any
>        Require valid-user
>        AuthType Basic
>        AuthName "Subversion Repository"
>        AuthUserFile /etc/svn/svn_users
>  </Limit>
>  <LimitExcept GET PROPFIND OPTIONS REPORT>
>        ProxyPass http://svn.cross-lfs.org/svn/repos
>        ProxyPassReverse http://svn.cross-lfs.org/svn/repos
> </LimitExcept>
> </Location>

I haven't checked the code, but I doubt <Limit> can be used in that
way.  It works only for auth directives.

You can, however, accomplish this by using the proxy [P] flag of mod_rewrite.

Joshua.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org