Por que um redirecionamento de um endereço IP local assume localhost?

1

Estou desenvolvendo um aplicativo da web na minha área de trabalho e ele está sendo executado na porta 80. Eu posso acessar o aplicativo do meu laptop conectado à LAN digitando o endereço IP da LAN da minha área de trabalho 192.168.1.8. Agora, meu aplicativo envia um redirecionamento após o login, mas meu laptop assume que o endereço final é localhost / login. Se eu digitar manualmente o endereço IP e o URI de qualquer página, isso indica que estou logado, portanto, funciona como esperado. Então, por que o redirecionamento assume localhost?

Ambas as minhas máquinas são baseadas em linux. O laptop sendo o Chrome OS. Estou executando o nginx, que faz proxy de solicitações de arquivos não estáticos para o Jetty na porta 8080.

$ cat /etc/hosts
127.0.0.1 locahost
192.168.1.8 desktop
$ hostname
desktop

O redirecionamento é enviado do Jetty, com um HttpServletResponse.sendRedirect()

TL; DR:

Laptop: Request http://192.168.1.8/login
Desktop: Respond with redirect to /index
Laptop: Redirect request to http://localhost/index

Requesting http://desktop/login doesn't work.
    
por Jeremy Heiler 16.01.2011 / 18:32

3 respostas

1

Não há ... nada em lugar algum que redirecione implicitamente para localhost . Algo dentro do framework ou aplicativo está explicitamente fazendo isso.

    
por 16.01.2011 / 18:37
0

Ao conectar-se a qualquer endereço de interface local, a conexão é feita a partir de 127.0.0.1 (o endereço de loopback local). Isso não requer um redirecionamento. O nome desse endereço é localhost, como você encontrará em / etc / hosts. Muitos aplicativos verificarão outras interfaces locais em busca de um nome e usarão isso de preferência para localhost.

    
por 16.01.2011 / 18:40
0

O Jetty é o prefácio de cada URL relativa com seu domínio raiz (no Apache, é chamado de "Nome do servidor", não sei sobre o Jetty), suponho: Daí o "localhost". Então você precisa substituir o "localhost" por algo que faça sentido para os dois computadores:

Você pode criar um domínio como "example.com" em seu webroot no Jetty e defini-lo como seu webroot e adicioná-lo ao arquivo de hosts do laptop.

    
por 16.01.2011 / 20:14