当删除目录的修订之间存在差异时,Traefik 背后的 SVN 返回错误 500

SVN behind Traefik returning error 500 when diff between revisions where a directory was deleted

好吧,我想把题目具体化,结果把问题都写在里面了^^

所以,我有一个 Traefik Docker 容器,它公开了一个 SVN 容器(使用 Apache DAV_SVN 模块)。 问题是当我做 svn diff -r 1:2 https://THEURL/svn/Repo/ 它因 500 错误而失败:

svn: E175002: Unexpected server error 500 'Internal Server Error' on '/svn/Repo/!svn/rvr/1/deleted_directory'

如果目录(deleted_directory 在我的示例中)在版本 2 中已被删除但存在于版本 1 中,似乎会发生这种情况。

问题是我有另一个 SVN 服务器,它使用相同的命令(和相同的 repo)工作得很好(一个旧的 VisualSVN)。

另一个有趣的事实是,如果我直接在 SVN 容器中执行命令(用 localhost 替换 THEURL),那么一切正常。这表明这是一个反向代理/Traefik 问题。

你有什么见识吗?谢谢!

我终于找到了问题的解决方案:阻止 WebDav 的企业防火墙。这解释了为什么它在容器内以及在公司网络上的另一台服务器 (VisualSVN) 上工作...

即使使用 Traefik,在家里也一切正常(这意味着:没有防火墙)。嗅探 HTTP 帧显示一条消息,表明此防火墙不允许 WebDav 方法。的确,PROPFIND 是造成麻烦的那个。

结束这个问题 ;-)