Lighttpd Proxy – > Apache SVN mod_dav_svn – 通过命令行卡住,但在浏览器中工作

我有一个令人困惑的问题。 我已经安装了很久以前的Apache 2.4 mod_dav_svn能够通过https URL访问我的回购站。 这一切只与Apache工作正常。 现在我切换到lighttpd,我已经通过httpspipe理访问现在与我的lighttpconfigurationproxy.server。 这项工作在浏览器中很好,我仍然可以通过浏览器访问我的回购。 但是,现在不再使用命令行或乌龟svn了。 它无限地挂起。 日志中没有任何错误,只是挂起而没有错误。 当我在命令行取消请求比它说unable to connect...但是当我在浏览器中input相同的url,它完美的作品。 我不知道如何解决这个问题。

编辑:如果我在lighttpd侧禁用SSL并通过端口80传递它也不起作用。 它要求用户名和通行证,而不是挂起。

这是我的lighttpdconfiguration

 $SERVER["socket"] == ":443" { ssl.engine = "enable", server.errorlog = "/var/log/lighttpd/ssl-error.log", ssl.pemfile = "/etc/ssl/owncerts/defaultcert.pem", HTTP["host"] == "myhost.com"{ server.document-root = "/srv/default/htdocs", ssl.pemfile = "/etc/ssl/owncerts/myhost.com.pem", proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 8443)) ) } } 

这里是我的Apacheconfiguration

 <VirtualHost *:8443> ServerName https://myhost.com <Location /> DAV svn SVNPath /srv/svn/xxx AuthType Basic AuthName "xxx SVN Repository" AuthUserFile /srv/svn/xxx/conf/users AuthzSVNAccessFile /srv/svn/xx/conf/authz Require valid-user </Location> </VirtualHost> 

testing1

当我做一个选项请求通过curl检查比我给我这样一个正确的输出 – 在Apache和Lighttp访问日志都有响应代码与“200”。

 HTTP/1.1 200 OK Date: Mon, 09 Mar 2015 13:07:27 GMT Server: Apache/2.4.7 (Ubuntu) DAV: 1,2 DAV: version-control,checkout,working-resource DAV: merge,baseline,activity,version-controlled-collection DAV: http://subversion.tigris.org/xmlns/dav/svn/depth DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops DAV: http://subversion.tigris.org/xmlns/dav/svn/atomic-revprops DAV: http://subversion.tigris.org/xmlns/dav/svn/partial-replay DAV: http://subversion.tigris.org/xmlns/dav/svn/inherited-props DAV: http://subversion.tigris.org/xmlns/dav/svn/inline-props DAV: http://subversion.tigris.org/xmlns/dav/svn/reverse-file-revs DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo MS-Author-Via: DAV Allow: OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,CHECKOUT Content-Length: 0 

testing2

如果我通过svn命令行执行简单的“checkout”请求,则会发生以下情况

这些要求是在lighttpd方面

 xxx.xxx.xx.xxx myhost.com - [09/Mar/2015:14:13:19 +0100] "OPTIONS /testrepos HTTP/1.1" 401 588 "-" "SVN/1.8.11 (x64-microsoft-windows) serf/1.3.8" 

这个请求是在Apache的一面

 myhost.com:443 127.0.0.1 - - [09/Mar/2015:14:13:19 +0100] "OPTIONS /testrepos HTTP/1.0" 401 825 "-" "SVN/1.8.11 (x64-microsoft-windows) serf/1.3.8" myhost.com:443 127.0.0.1 - brain [09/Mar/2015:14:13:19 +0100] "OPTIONS /testrepos HTTP/1.0" 200 1661 "-" "SVN/1.8.11 (x64-microsoft-windows) serf/1.3.8" 

此时svn命令行客户端挂起。

testing3

如果我在现有仓库(testrepos)上用CURL做一个简单的OPTIONS请求,它按预期工作

这里是lighttpd日志

 xxx.xxx.xx.xxx myhost.com - [09/Mar/2015:14:30:41 +0100] "OPTIONS /testrepos HTTP/1.1" 200 0 "-" "curl/7.35.0" 

这里是apache日志

 myhost.com:443 127.0.0.1 - brain [09/Mar/2015:14:30:41 +0100] "OPTIONS /testrepos HTTP/1.0" 200 855 "-" "curl/7.35.0" 

testing4

不幸的是我不能debugging我的svn客户端的networking连接,1.8中没有这样的选项。 此外,我已经testing它没有任何基本authentication。 也没有工作,Apache和Lighttpd都返回200响应代码,但SVN CLI客户端仍然挂起。 当我尝试使用http://myhost:8443/testrepos直接在apache端检出URL时,它也可以与CLI客户端一起工作。 Apache和Lighttp之间的代理pipe道似乎坏了。 我可能会决定跳过我的错误search进度,并将我的repos只切换到新的端口,而不是默认的SSL端口。 它需要我的一些工作,但它终于会工作。