我有两个设备,只能使用内部网络访问。
为了从外部访问它,我在树莓设备中安装了nginx,并在nginx中添加了一个重定向,如
location /device1
{
return 301 http://192.168.0.1:80
}
类似地,我添加了device2,现在我使用了ngrok,并在外部公开了localhost:80。
问题:如果我在设备1和设备2的同一网络中,我可以连接它。
如果我更改网络,我可以访问nginx默认页面。
现在,如果我附加设备1,它会显示找不到页面
所需解决方案:
如何连接来自不同网络的设备1和设备2
为什么需要这样做,比如说我在亚马逊运行一个应用程序,我想连接到我的内部设备ip并访问数据。
您需要使用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前缀下代理某个东西",根据您在该前缀下代理的内容,可能会出现各种问题。