Apache: redireciona a URL específica para um servidor local em uma porta diferente

5

Isso parece simples, mas não consigo fazer funcionar.

Eu tenho um servidor da Web bastante trivial que precisa apenas fazer duas coisas:

  1. example.com/status.html retorna um arquivo local (isso funciona)
  2. example.com/atom redireciona o conteúdo do servidor com firewall em execução na mesma máquina na porta 4000

Isso não funcionou:

RewriteRule ^$ http://localhost:4000

Isso redirecionou o tráfego de volta ao localhost: 4000 do ponto de vista do solicitante (ou seja, na máquina do cliente).

Meu entendimento limitado do VirtualHost indica que é algo como atom.example.com, não example.com/atom

Acho que tenho que usar o ProxyReverse, mas não consigo encontrar a combinação certa.

ATUALIZAÇÃO: Tentar a sugestão ProxyPass / ProxyReverse dada por Shane Madden produz isso no arquivo de log de erros:

[Thu Mar 15 11:59:15 2012] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:4000 (localhost) failed
[Thu Mar 15 11:59:15 2012] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Thu Mar 15 11:59:17 2012] [error] proxy: HTTP: disabled connection for (localhost)

(O servidor local está definitivamente rodando em 127.0.0.1:4000)

    
por Steve Bennett 15.03.2012 / 01:33

1 resposta

6

Não use mod_rewrite a menos que você tenha uma razão para fazer isso.

Tente isso (coloque-o no bloco <VirtualHost> ):

ProxyPass /atom http://127.0.0.1:4000/atom
ProxyPassReverse /atom http://127.0.0.1:4000/atom
    
por 15.03.2012 / 01:37