Apache ProxyPass para Rack dá erro 404

1

(por simplicidade eu mudei os IPs do servidor Apache para 1.1.1.1 e o servidor Gollum para 6.6.6.6)

Estou tentando veicular um wiki Gollum com o rack do Apache (já que o SSL está configurado corretamente e estou atualmente apenas testando o wiki do Gollum). Então eu configurei o Apache para ProxyPass (config abaixo).

O problema é que o servidor em rack parece estar funcionando bem quando eu o acesse diretamente por meio de um enrolar da minha máquina proxy:

1.1.1.1 - - [05/Dec/2013 06:20:25] "GET /docs/Home HTTP/1.1" 200 6467 0.2135

mas recebo um 404 sempre que tento usar meu navegador. Rackup diz:

6.6.6.6 - - [05/Dec/2013 06:20:00] "GET /docs/Home HTTP/1.1" 404 - 0.0006

Absurdamente, quando eu uso os mesmos cabeçalhos exatos que o meu navegador envia (veja abaixo) via telnet da máquina proxy (1.1.1.1) a requisição é bem sucedida:

6.6.6.6 - - [05/Dec/2013 06:19:19] "GET /docs/Home HTTP/1.1" 200 6467 0.2759

Eu não tenho ideia do que estou fazendo de errado e por que (e como ?!) o rack diferencia entre duas solicitações diferentes da mesma máquina. Ajuda por favor?

(Usando o Apache / 2.2.15 no RHEL 5 e Rack 1.2 (Release: 1.5) no ruby 1.9.2p320, RHEL 6)

EDIT Aparentemente, este é um problema com WEBrick, desde quando mudo para o Thin funcionou. Ainda gostaria das suas ideias ...

Configuração do Apache:

<VirtualHost 1.1.1.1:80>

    ServerName testserver.example.org
    ServerAlias testserver.example.org
    ServerAdmin [email protected]

    DocumentRoot /path/to/my/docs
    DirectoryIndex index.html index.htm index.php

    # ...

    <Location /docs/>
        ProxyPass http://6.6.6.6:8080/docs/

        # also tried:
        # ProxyPass http://rackserver.example.org:8080/docs/

        # and:
        # SetEnv force-proxy-request-1.0 1
        # SetEnv proxy-nokeepalive 1

    </Location>

</VirtualHost>

Solicitação Telnet:

<1>root@testserver:~$ telnet rackserver.example.org 8080
Trying 6.6.6.6...
Connected to rackserver.example.org.
Escape character is '^]'.
GET /docs/Home HTTP/1.1
ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
ACCEPT_ENCODING: gzip,deflate,sdch
ACCEPT_LANGUAGE: en-US,en;q=0.8,he;q=0.6
CACHE_CONTROL: max-age=0
COOKIE: SESS...; has_js=1
HOST: rackserver.example.org:8080
USER_AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
VERSION: HTTP/1.1
X_FORWARDED_FOR: 6.6.6.6
X_FORWARDED_HOST: apacheserver.example.org
X_FORWARDED_SERVER: testserver.example.org

Verifiquei que o rack up imprime a mesma saída para a solicitação de navegador normal e a solicitação telnetted usando o código desta resposta .

    
por Yuval 05.12.2013 / 15:52

0 respostas