Tengo dos dispositivos a los que solo se puede acceder mediante la red interna.
Para acceder a él externamente, instalé nginx en el dispositivo raspberry y agregué una redirección dentro de nginx como
location /device1 { return 301 http://192.168.0.1:80 }
Del mismo modo, he agregado el dispositivo 2 y ahora he usado ngrok y expuesto el localhost: 80 externamente.
Problema : si estoy en la misma red de dispositivo 1 y dispositivo 2, puedo conectarlo.
Si cambio mi red, puedo acceder a la página predeterminada de nginx.
Ahora, si agrego el dispositivo 1, dice página no encontrada.
Solución requerida:
¿Cómo conecto el dispositivo 1 y el dispositivo 2 desde una red diferente?
¿Por qué se requiere esto? Digamos, por ejemplo, que estoy ejecutando una aplicación en Amazon. Quiero conectarme a la IP de mi dispositivo interno y acceder a los datos.
Necesita usar nginx como proxy inverso para eso. La configuración mínima es
location /device1/ { proxy_pass http://192.168.0.1/; }
Con esta solicitud de configuración, GET /device1/some/other/path
llegará a su dispositivo como GET /some/other/path
. Si elimina la barra inclinada final de la cadena http://192.168.0.1/
, la misma solicitud llegará a su dispositivo como GET /device1/some/other/path
. Lo que está tratando de hacer comúnmente se llama "enviar algo bajo algún prefijo URI", y dependiendo de lo que esté haciendo pasar bajo este prefijo, puede haber varios problemas.