我有两个只能通过内部网络访问的设备。
要从外部访问它,我已经在树莓派设备中安装了nginx并在nginx中添加了重定向,例如
location /device1
{
return 301 http://192.168.0.1:80
}
类似地,我添加了device2,现在我使用了ngrok并在外部公开了localhost:80。
问题: 如果我在device1和device2所在的同一网络中,则可以连接它。
如果我更改网络,则可以访问nginx默认页面。
现在,如果我附加device1,则会显示找不到页面。
所需解决方案:
如何从不同的网络连接device1和device2 ??
为什么需要这样说,例如我正在亚马逊上运行一个应用程序,我想连接到我的内部设备ip并访问数据。
答案 0 :(得分:1)
您需要使用nginx作为反向代理。最小的配置是
location /device1/
{
proxy_pass http://192.168.0.1/;
}
通过此配置请求,GET /device1/some/other/path
将以GET /some/other/path
的身份到达您的设备。如果您删除了http://192.168.0.1/
字符串的尾部斜杠,则与GET /device1/some/other/path
相同的请求将到达您的设备。您通常尝试做的事情是“在某些URI前缀下代理某些内容”,并且根据您在此前缀下代理的内容,可能会出现各种问题。