Não há ... nada em lugar algum que redirecione implicitamente para localhost
. Algo dentro do framework ou aplicativo está explicitamente fazendo isso.
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.
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.
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.
Tags java browser lan linux redirection