Pregunta Configurando nginx / ngrest en la máquina virtual Ubuntu para acceso externo


Tengo una máquina virtual Ubuntu 18.04 que se ejecuta en Windows 7. La máquina virtual está configurada para un adaptador puenteado de Virtual Box. Puede conectarse en línea, tiene la misma IP de esquema de IP con la red local y se puede sincronizar desde Windows.

El sitio de muestra nginx (info.php) se puede acceder en el navegador utilizando IP_address/info.php.

Tengo un servicio ngrest creado con esta página, y funciona bien dentro del navegador de la VM usando localhost:9098/pets/getPets.

ngrest page inside VM Sin embargo, ese servicio es inaccesible desde Windows. yo suelo IP_address:9098/pets/getPets. ¿Alguien puede mostrarme cómo se puede configurar? Gracias.


0


origen




Respuestas:


Cambié a pistache (presentado aquí) después de no poder encontrar la solución. Nuevamente, el hello el servicio de muestra no es accesible desde otra computadora. Es evidente que el problema es sistémico. Un amigo mío sugiere buscar en la configuración del firewall. Finalmente, estos dos comandos ayudan a reducir el problema:

sudo ufw status
sudo netstat -tulpn

Después de instalar el LEMP apilar, ufw solo permite solicitudes entrantes en el puerto 80:

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

Esta es la razón por la cual ambos servicios de pistache y ngrest no son accesibles desde otras computadoras, mientras que la muestra NginX info.php el sitio es Los puertos utilizados por estos servicios se pueden agregar con:

sudo ufw allow 9080
sudo ufw allow 9098

Los puertos abiertos se muestran al ejecutar sudo ufw status de nuevo. sin embargo, el ngrest el servicio aún no es accesible. Corriendo sudo netstat -tulpn muestra:

netstat

La imagen indica que NginX volvió a cablear al puerto 81 mientras retoques para descubrir la solución. Sitios de muestra NginX y hello servicios (pistache) están obligados a 0.0.0.0 Dirección IP, que es diferente de la de la ngrest Servicio. Googleando alrededor me aterriza aquí. Aparentemente, ngrestEl autor no mencionó cómo habilitar el servicio para computadoras externas en su guía. Las especificaciones están ubicadas aquí. los NGREST_SERVER_IP se usa para especificar una dirección IP diferente. El servicio se reactiva usando:

NGREST_SERVER_IP=0.0.0.0 ngrest

Ahora el ngrest el servicio es accesible desde el exterior. Esta característica aparentemente proviene de Esta petición. NGREST_SERVER_PORT es otra característica interesante. Por lo tanto, un ngrest el servicio podría llamarse así:

NGREST_SERVER_IP=0.0.0.0 NGREST_SERVER_PORT=9090 ngrest

De todos modos, estos son los ajustes que lo hicieron posible:

settings


0