使用 NGINX 安装 SVN 服务器

使用 NGINX 安装 SVN 服务器

我正在尝试安装 SVN 服务器并将其与我的 NGINX 网络服务器一起使用。我已
在 nginx/sites-enabled/svn 中的服务器部分尝试过此操作,我已添加了此内容

  位置 /var/svn/repos {
        代理密码 http://127.0.0.1:81;
        #包括/etc/nginx/proxy.conf;
        设置$目标$http_destination;
        如果 ($http_destination ~ "^https://(.+)") {
           设置$dest http://$1;
        }
       proxy_set_header 目的地$dest;
        }

我在端口 81 上运行 apache,并创建了 100% 在 apache 上运行的虚拟主机。现在,每当我尝试 svn checkout 时,我都会得到以下信息:

$ svn co http://svn.mysite.com/myrepo
svn:服务器在响应“http://svn.mysite.com/myrepo”的 OPTIONS 请求时发送了意外的返回值(500 内部服务器错误)

在错误日志中我有这个

2012/04/18 07:43:36 [错误] 9914#0:*106 重写或内部重定向循环,而内部重定向至“/index.html”,客户端:93.95.201.250,服务器:mysite.com,请求:“GET /myrepo HTTP/1.1”,主机:“svn.mysite.com”

有人知道如何在 nginx 上安装 svn 服务器吗?任何想法都非常感谢?
谢谢你的帮助

答案1

我已经成功做到了这一点。您可能可以进一步简化它,但它可能会为您提供一个有效的配置。

在 nginx.conf(或 /etc/nginx/conf.d 下的其他 .conf 文件中):

location /var/svn/repos {
    # the "proxy_set_header Destination"-stuff is moved to apache's config - see below
    proxy_pass http://127.0.0.1:81/var/svn/repos;
}

然后在 /etc/httpd/conf.d/subversion.conf

...
<VirtualHost *:81>
    RequestHeader edit Destination ^https http early

    <Location /var/svn/repos>
        DAV svn
        SVNPath /var/svn/repos
    </Location>
</VirtualHost>

相关内容