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

0

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, tem o mesmo IP de esquema IP com a rede local e pode ser feito ping no Windows.

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

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

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.

    
por CaTx 30.07.2018 / 06:52

1 resposta

0

Mudei para pistache (destaque aqui ) depois de não conseguir a solução. Novamente, o serviço de amostra hello 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 stack, ufw somente permite solicitações de entrada na porta 80 :

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

É por isso que os serviços de pistache e ngrest não estão acessíveis em outros computadores, enquanto o exemplo 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 exibidas executando sudo ufw status novamente. No entanto, o serviço ngrest ainda não está acessível. A execução de sudo netstat -tulpn mostra:

AimagemindicaqueoNginXfoireconectadoàporta81enquantoconsertavaasolução.OssitesdeamostraNginXeosserviçoshello(pistache)estãovinculadosaoendereçoIP0.0.0.0,queédiferentedaqueledoserviçongrest.Pesquisandoemmeupaís, aqui . Aparentemente, o autor de ngrest 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 serviço ngrest está acessível a partir do exterior. Este recurso aparentemente vem de este pedido . NGREST_SERVER_PORT é outro recurso interessante. Assim, um serviço ngrest 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:

    
por 30.07.2018 / 07:02