Proxy Lighttpd - Apache SVN mod_dav_svn - Preso via linha de comando, mas funciona no navegador

3

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á.

    
por Brain Foo Long 09.03.2015 / 13:20

0 respostas