SubversionProblem: Reverse Proxying to Apache with mod_dav_svn

Hi everyone.

I have NGINGX installed in front of an Apache with mod_dav_svn to access
my Subversion Repositories via WebBrowser and with SVN-Clients.

Adding and committing small files is working well.

But when I try to add/commit a large file (files with ca more than 100
or 200 KiloByte) I get an error.

The NGINGX-ErrorLog says:
2009/09/14 01:02:06 3596#0: signal process started
2009/09/14 01:02:30 3597#0: *75 sendfile() failed (38:
Function not implemented) while sending request to upstream, client:
85.178.219.182, server: svn.my.synology-diskstation.de, request:
“PUT
/repos/Paper-2009-SEISCONF/!svn/wrk/cb91b057-5bb4-084b-bd76-57f91625eb1e/Einfuehrung_Richtlinien%20%5BSchreibgesch%C3%BCtzt%5D.pdf
HTTP/1.1”, upstream:
http://127.0.0.1:2080/repos/Paper-2009-SEISCONF/!svn/wrk/cb91b057-5bb4-084b-bd76-57f91625eb1e/Einfuehrung_Richtlinien%20.pdf”,
host: “svn.my.synology-diskstation.de

The error messages of the Tortoise SVN Client:
Error: Commit failed (details follow):
Error: PUT of
‘/repos/Paper-2009-SEISCONF/!svn/wrk/cf98065e-f6ff-bd45-be26-ba027b7b69bc/Einfuehrung_Richtlinien%20%5BSchreibgesch%C3%BCtzt%5D.pdf’:
502 Bad Gateway (https://svn.my.synology-diskstation.de)

The nginx.conf part for svn:
server {
listen 7080;
server_name svn.my.synology-diskstation.de;
rewrite ^(.*) https://svn.my.synology-diskstation.de$1 redirect;
}

# HTTPS server
#
server {
   listen       7443;
   server_name svn.my.synology-diskstation.de;

   ssl                  on;
  ssl_certificate      /opt/etc/apache2/ssl-cert/subversion.crt;
  ssl_certificate_key  /opt/etc/apache2/ssl-cert/subversion.key;

  ssl_session_timeout  5m;

 ssl_protocols  SSLv2 SSLv3 TLSv1;
  ssl_ciphers 

ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
add_header Front-End-Https on;

    location /repos/ {
       set $fixed_destination $http_destination;
        if ( $http_destination ~* ^https(.*)$ )
        {
           set $fixed_destination http$1;
        }

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Destination $fixed_destination;
     proxy_pass      http://127.0.0.1:2080/repos/;

}

Also in th http{} section of nginx.conf the following is set:

include       mime.types;
default_type  application/octet-stream;
server_names_hash_bucket_size 33;
log_format main '$http_x_forwarded_for';
#log_format  main  '$request_uri - $server_addr - $server_port - 

$remote_addr - $remote_port - $remote_user [$time_local] “$request” ’

'$status $body_bytes_sent “$http_referer” ’

‘"$http_user_agent" “$http_x_forwarded_for”’;

access_log  /opt/etc/nginx/logs/access.log;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;
client_max_body_size 65M;
client_body_buffer_size 128K;
#gzip  on;

Has anyone an idea whats wrong?
Only files with size smaller than 100 KiloBytes can be added/committed
to the SVN Repository.

Thanks in advance, Helko

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,6789,6789#msg-6789

Hello!

On Mon, Sep 14, 2009 at 02:24:22AM -0400, [email protected]
wrote:

2009/09/14 01:02:30 3597#0: *75 sendfile() failed (38:
Function not implemented) while sending request to upstream, client:
85.178.219.182, server: svn.my.synology-diskstation.de, request:

Looks like either your OS or filesystem you are using for
client_temp_path has no sendfile() support. Switching off
sendfile should fix this.

Maxim D.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs