Há pelo menos três componentes separados em jogo aqui, cada um dos quais precisa ser configurado corretamente.
Endereço de ligação do Rails
Quando o Rails (ou outro aplicativo de servidor) for aberto para receber conexões de rede, ele será vinculado a um IP e uma porta. Se uma solicitação de entrada não corresponder a ambas, ela não aceitará a conexão. De rails server --help
:
Usage: rails server [mongrel, thin etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=IP Binds Rails to the specified IP.
Default: localhost
...
Portanto, por padrão, o Rails aceita apenas solicitações enviadas ao seu localhost
adaptador de rede (loopback) (chamado lo
). Como esse adaptador só pode ser acessado no mesmo computador, as únicas solicitações que ele aceitará serão da própria VM da Debian: boas e seguras para teste, mas não são úteis para produção, ou até mesmo testam em um computador diferente.
Se você deseja que seu Rails seja acessível a partir de qualquer outro computador (incluindo o host do Windows 7), você precisará instruir o Rails a se associar a qualquer endereço IP que o Debian possua que seja acessível externamente (veja abaixo).
No entanto, uma maneira mais fácil é dizer ao Rails para se conectar ao endereço IP especial 0.0.0.0
, o que significa qualquer adaptador de rede . Então, iniciando o servidor Rails da seguinte forma:
rails server -p 80 -b 0.0.0.0
tornará seu site acessível a qualquer pessoa que possa ver sua VM na rede.
É provável que isso ainda tenha atrapalhado você, mesmo se você tivesse os outros dois componentes funcionando.
Endereço IP da VM
Você precisa apontar seu navegador para a máquina virtual Debian, que é seu próprio computador discreto.
A regra geral localhost
é que sempre se refere ao mesmo computador. No entanto, para propósitos de rede, sua VM Debian é seu próprio computador separado. Se você estiver usando um navegador da web no host do Windows 7, localhost
sempre fará referência ao seu Windows 7 e nada mais.
Você tem duas opções aqui:
Defina o adaptador VM do VirtualBox para o modo Bridge (conforme mencionado na sua pergunta). Isso colocará o seu Debian diretamente na mesma rede externa / residencial / comercial que o seu host Windows 7. Você pode determinar o IP da sua VM Debian executando ifconfig
. Procure o IP do seu eth0
ou eth<something>
adaptador. Conecte isso na barra de endereços do seu navegador.
Use um adaptador NAT e encaminhamento de porta do VirtualBox . IMO isso é mais complicado.
Firewall Debian
Já faz um tempo desde que eu trabalhei no Debian, então não sei quais são os padrões atuais, mas se as duas coisas acima não funcionarem, isso pode valer a pena investigar. Se o Debian estiver executando um firewall, você precisará abrir as portas que deseja acessar de outra máquina.
Espero que isto ajude :)