Nginx:如何使用ngrok映射内部IP地址和代理,而无需重定向

时间:2020-03-06 09:01:15

标签: nginx proxy reverse-proxy nginx-reverse-proxy nginx-config

我有两个只能通过内部网络访问的设备。

要从外部访问它,我已经在树莓派设备中安装了nginx并在nginx中添加了重定向,例如

location /device1 { return 301 http://192.168.0.1:80 }

类似地,我添加了device2,现在我使用了ngrok并在外部公开了localhost:80。

问题: 如果我在device1和device2所在的同一网络中,则可以连接它。

如果我更改网络,则可以访问nginx默认页面。

现在,如果我附加device1,则会显示找不到页面。

所需解决方案:

如何从不同的网络连接device1和device2 ??

为什么需要这样说,例如我正在亚马逊上运行一个应用程序,我想连接到我的内部设备ip并访问数据。

1 个答案:

答案 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前缀下代理某些内容”,并且根据您在此前缀下代理的内容,可能会出现各种问题。

相关问题