svn使用nginx提交失败:找不到路径

svn使用nginx提交失败:找不到路径

我已经在我的 nginx 网络服务器上构建了 svn 服务器。我的 nginx 配置是

服务器 {
        听80;
        服务器名称svn.mysite.com;
        地点 / {
        访问登录关闭;
        代理密码 http://svn.mysite.com:81;
        proxy_set_header X-真实IP $remote_addr;
        proxy_set_header 主机 $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        位置 ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index索引.php;
                包括 fastcgi_params;
        }
}

现在我能SVN 公司svn 上传正常情况下没有任何问题,但当我尝试提交时出现错误:

$svn 向上
在修订版 1285 中。
$ svn 信息
小路: 。
网址: http://svn.mysite.com/elpis-repo/crons
存储库根目录:http://svn.mysite.com/elpis-repo
存储库 UUID:5303c0ba-bda0-4e3c-91d8-7dab350363a1
修订:1285
节点类型:目录
时间安排:正常
最后修改作者:alaa
上次修改版本:1280
最后修改日期:2012-04-29 10:18:34 +0300(2012 年 4 月 29 日,星期日)

$svn st
M 配置.php
$svn ci -m“只是一个测试,在配置中添加空白行”config.php
发送 config.php
svn:提交失败(详细信息如下):
svn:文件‘config.php’已过期
svn:未找到‘/elpis-repo/!svn/bc/1285/crons/config.php’路径

如果我尝试在端口 81 上使用 svn co(我的 proxy_pass 是 apache),然后使用 svn ci,它会顺利运行!但是为什么当我使用 nginx 完成它时它不起作用?
任何想法都非常感谢。

答案1

请求被您的位置块捕获\.php$,并通过 FastCGI 传递给 PHP。您需要确保 SVN 请求始终代理到 Apache。如果您不需要此虚拟主机上的 PHP,只需删除该位置指令。如果您需要特定路径下的 PHP,请使位置块更具体,例如^/phpstuff/.*\.php$。如果这不可能,请在 PHP 之前添加一个空的位置块以捕获 SVN repo 路径下的 .php 文件,例如:

location ~ ^/elpis-repo/.*\.php$ {}

答案2

如果你只想将来自“svn.mysite.com/elpis-repo”的请求代理到 subversion,并将其余的请求代理到 Web 服务器,那么请使用此

location ~ ^/elpis-repo {}

相关内容