SubversionProblem: Reverse Proxying to Apache with mod_dav_svn

Maxim Dounin mdounin at mdounin.ru
Mon Sep 14 12:13:28 MSD 2009


Hello!

On Mon, Sep 14, 2009 at 02:24:22AM -0400, glathe.helko at googlemail.com wrote:

> 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:

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 Dounin

> "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
> 
> 





More information about the nginx mailing list