Eu tenho um problema confuso. Eu instalei há muito tempo Apache 2.4 com mod_dav_svn para poder acessar meus repositórios via urls https. Tudo funciona bem apenas com o Apache. Agora mudei para o lighttpd e já consegui o acesso via https agora com um proxy.server
na minha configuração lighttp. Isso funciona bem no navegador, eu ainda posso acessar meus repositórios através do navegador agora. Mas, agora, ele não funciona mais com a linha de comando ou o svn da tartaruga. Está pendurado infinitamente. Não há erro no log ou algo assim, apenas desligue sem erros. Quando eu cancelar o pedido na linha de comando do que diz unable to connect...
, mas quando eu entrar no mesmo URL no navegador funciona perfeitamente. Eu não tenho ideia de como consertar isso.
Edit: Se eu desabilitar o SSL no lado lighttpd e passá-lo pela porta 80, ele também não funciona. Ele pede nome de usuário e passa, do que trava.
Aqui está minha configuração lighttpd
$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))
)
}
}
E aqui está minha configuração do apache
<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>
TESTE 1
Quando eu faço um pedido de OPÇÕES, verifique através de curl
do que eu me dê uma saída correta como esta - Ambos no Apache e log de acesso Lighttp existem códigos de resposta com "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
TESTE 2
Se eu fizer uma requisição simples de "checkout" via linha de comando svn, o seguinte acontece
Estas solicitações estão no lado 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"
Esta solicitação está no lado do 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"
Neste ponto, o cliente de linha de comando do svn trava.
TESTE 3
Se eu fizer uma solicitação OPTIONS simples com CURL em repos existentes (testrepos), isso funcionará como esperado
Aqui está o log do 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"
Aqui está o log do 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"
TESTE 4
Infelizmente eu não posso depurar a conexão de rede do meu cliente svn, não existe mais essa opção em 1.8. Além disso, eu testei sem qualquer autenticação básica. Também não funcionando, o Apache e o Lighttpd retornam 200 códigos de resposta, mas o cliente SVN CLI ainda trava. Quando eu tento fazer o checkout do URL diretamente no lado do apache com http://myhost:8443/testrepos
ele também funciona com o cliente CLI. Parece que o pipe de proxy entre o Apache e o Lighttp está quebrado. Eu provavelmente decidirei ignorar o progresso da pesquisa de erros e mudar meu repositório apenas para a nova porta em vez da porta ssl padrão. Isso requer algum trabalho para mim, mas finalmente funcionará.
Tags proxy svn lighttpd apache-2.2