Nginx:如何在不重定向的情况下使用ngrok映射内部Ip地址和代理



我有两个设备,只能使用内部网络访问。

为了从外部访问它,我在树莓设备中安装了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前缀下代理某个东西",根据您在该前缀下代理的内容,可能会出现各种问题。

最新更新