Topic: apache2 mod_proxy mongrel_cluster and subversion http all at same time

Hello everyone,

I have a site setup where I need to have svn access and my rails app accessible on the same IP. Right now I can only seem to have one or the other.

This is a production environment... I'm running Ubuntu 7.04 server with apache2 and mod_proxy serving rails requests to 2 mongrel servers via mongrel_cluster and it works great to serve the app when I use this httpd.conf file (I modified domain specific info to be generic) Also the basic authentication is just because this is 80% developed app running on a test production server. I didn't want everyone and anyone in the company I'm developing this for to have access just by hitting the url. At least with basic auth it would take some effort to see the site without a username and password which no one involved in this project would care to do. So for all intent and purpose...ignore the basic auth! I know it sucks!

However if the below httpd.conf file is in place then all the sudden my subversion repository is no longer accessible via dav_svn at http://subdomain.domain.com/svn/appname/trunk

Is there a way to have both dav_svn http subversion access to my repository and also serve the rails application? Please see httpd.conf file below.

Thanks!

<VirtualHost *:80>
  ServerName subdomain.domain.com

  DocumentRoot /var/www/appname/current/public

  <Directory "/var/www/appname/current/public">
    AuthType Basic
    AuthName "Authentication Required to access site"
    AuthUserFile "/home/administrator/.htpasswd"
    Require valid-user

    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>

  <Proxy balancer://mongrel_cluster>
    BalancerMember http://127.0.0.1:8000
    BalancerMember http://127.0.0.1:8001
  </Proxy>

  RewriteEngine On

  # Uncomment for rewrite debugging
  #RewriteLog logs/myapp_rewrite_log
  #RewriteLogLevel 9

  # Check for maintenance file and redirect all requests
  RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
  RewriteCond %{SCRIPT_FILENAME} !maintenance.html
  RewriteRule ^.*$ /system/maintenance.html [L]

  # Rewrite index to check for static
  RewriteRule ^/$ /index.html [QSA]

  # Rewrite to check for Rails cached page
  RewriteRule ^([^.]+)$ $1.html [QSA]

  # Redirect all non-static requests to cluster
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]

  # Deflate
  AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml$
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

  # Uncomment for deflate debugging
  #DeflateFilterNote Input input_info
  #DeflateFilterNote Output output_info
  #DeflateFilterNote Ratio ratio_info
  #LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
  #CustomLog logs/myapp_deflate_log deflate

  ErrorLog logs/appname_errors_log
  CustomLog logs/appname_log combined

</VirtualHost>