Pergunta

Estou com um pequeno problema no final do Guia de primeiros passos para vagrant.Estou trabalhando em uma caixa base do CentOS que tem o Apache2 em execução (provisionamento via Puppet).Eu configurei o encaminhamento de porta para solicitações da web usando a seguinte linha em Vagrantfile:

 config.vm.forward_port "web", 80, 4567

Mas quando faço solicitações para essa porta, elas falham.O erro relatado pelo Safari é ‘O Safari não consegue abrir a página “http://localhost:4567/” porque o servidor interrompeu inesperadamente a conexão.'

Eu fiz um vagrant reload e vi "[padrão] - web:80 => 4567 (adaptador 1)" na rolagem, então por onde devo começar a solucionar isso?Obrigado.

Foi útil?

Solução

Farei disso uma resposta real, em vez de apenas mais comentários.

Primeira coisa:tentar curl 'http://localhost:80' de dentro da VM.Se isso não funcionar, definitivamente não é o encaminhamento de porta.

Próximo:tentar curl -v 'http://localhost:4567/' da sua máquina host.O Curl pode fornecer uma mensagem de erro melhor do que o Safari.

Eu verificaria se não há firewalls configurados que restrinjam o acesso à porta 80.O Vagrant VM padrão (Ubuntu) não vem com firewall configurado, mas você disse que está usando outra coisa, então pode valer a pena verificar.

Se não for isso, tente fazer algo diferente do Apache listado na porta 80.Python vem com um servidor HTTP simples que você pode usar - vá para a pasta com index.html e corra sudo python -m SimpleHTTPServer 80, e tente acertar com curl em ambas as caixas.Se funcionar, provavelmente é um problema de configuração do Apache.Não tenho experiência suficiente com Apache para ajudar se for esse o caso (eu uso nginx).

Outras dicas

Eu queria acrescentar uma observação adicional de que muitas vezes isso é causado pelo servidor dentro da VM porque ele se liga a 127.0.0.1, que é loopback.Você vai querer ter certeza de que o servidor está vinculado a 0.0.0.0 para que todas as interfaces possam acessá-lo.

Alguns servidores de aplicativos integrados, como os servidores de desenvolvimento do Django e alguns servidores Ruby, são padronizados como 127.0.0.1 por padrão, então isso é algo a ser observado.

Fora isso, o que Steve disse é verdade:Certifique-se de que funciona dentro da VM e tente outros servidores simples para tentar descobrir se é um problema de configuração.

Eu tive o mesmo problema no CentOS 6.3 com NGINX e descobri que a resposta estava no iptables na caixa vagrant.

Do bash na caixa vagrant, siga estas etapas:

Primeiro liste as regras atuais do iptable

iptables -L -v

Em seguida, libere as regras atuais:

iptables -F

Permitir conexões SSH na porta TCP 22

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Defina políticas padrão para cadeias INPUT, FORWARD e OUTPUT

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

Definir acesso para localhost

iptables -A INPUT -i lo -j ACCEPT

Aceitar pacotes pertencentes a conexões estabelecidas e relacionadas

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Salvar configurações

/sbin/service iptables save

Listar regras modificadas

iptables -L -v

Curl localhost:[port#] ou acesse-o em seu navegador de fora do vagrant

Mais informações sobre as configurações do iptable do CentOS encontradas aqui:

http://wiki.centos.org/HowTos/Network/IPTables

Boa sorte.

Uma solução melhor para mim é desabilitar o firewall

service iptables stop
chkconfig iptables off

Quero acrescentar outra nota como Mitchell também.se for o meu caso eu encaminho para 6789 de 80

$ curl -v http://localhost:6789

E eu consegui

<HTML>
<HEAD><TITLE>Redirection</TITLE></HEAD>
<BODY><H1>Redirect</H1></BODY>

Então, usei o endereço IP e recebi a mensagem HTML correta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top