Questão Configurando o nginx / ngrest na máquina virtual Ubuntu para acesso externo


Eu tenho uma VM Ubuntu 18.04 em execução no Windows 7. A VM está configurada para o adaptador em ponte do Virtual Box. Ele pode ficar on-line, ter o mesmo IP de esquema de IP com a rede local e pode receber ping do Windows.

O site de amostra nginx (info.php) pode ser acessado no navegador usando IP_address/info.php.

Eu tenho um serviço ngrest criado com esta páginae funciona bem dentro do navegador da VM usando localhost:9098/pets/getPets.

ngrest page inside VM No entanto, esse serviço está inacessível do Windows. eu uso IP_address:9098/pets/getPets. Alguém pode me mostrar como ele pode ser configurado? Obrigado.


0


origem




Respostas:


Eu mudei para pistache (destaque Aqui) depois de não conseguir descobrir a solução. Mais uma vez, hello O serviço de amostra não está acessível em outro computador. É evidente que o problema é sistêmico. Um amigo meu sugere investigar as configurações do firewall. Finalmente, esses dois comandos ajudam a reduzir o problema:

sudo ufw status
sudo netstat -tulpn

Depois de instalar o LEMP pilha, ufw só permite solicitações de entrada na porta 80:

Nginx HTTP                 ALLOW       Anywhere
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

É por isso que ambos os serviços de pistache e ngrest não são acessíveis de outros computadores, enquanto a amostra NginX info.php site é. As portas usadas por esses serviços podem ser adicionadas com:

sudo ufw allow 9080
sudo ufw allow 9098

As portas abertas são mostradas executando sudo ufw status novamente. No entanto, o ngrest o serviço ainda não está acessível. Corrida sudo netstat -tulpn mostra:

netstat

A imagem indica que o NginX foi reconectado ao porto 81 enquanto consertando para descobrir a solução. Sites de amostra NginX e hello Serviços (pistache) estão vinculados ao 0.0.0.0 Endereço IP, que é diferente daquele do ngrest serviço. Pesquisando em torno de terras me Aqui. Pelo visto, ngrestO autor não mencionou como habilitar o serviço para computadores externos em seu guia. As especificações estão localizadas Aqui. o NGREST_SERVER_IP é usado para especificar um endereço IP diferente. O serviço é reativado usando:

NGREST_SERVER_IP=0.0.0.0 ngrest

Agora o ngrest serviço é acessível a partir do exterior. Esse recurso aparentemente vem de Esse pedido. NGREST_SERVER_PORT é outro recurso interessante. Assim, um ngrest serviço poderia ser chamado assim:

NGREST_SERVER_IP=0.0.0.0 NGREST_SERVER_PORT=9090 ngrest

De qualquer forma, essas são as configurações que tornaram isso possível:

settings


0