Nginx反向代理没有定义server_name?

Nginx reverse proxy without defining server_name?

我需要访问私有网络中的网络服务器,无法从外部直接访问。打开路由器端口等不是一个选项。

我尝试在该网络中使用 raspi 解决这个问题,我可以通过 upswift.io 进行管理。
除其他外,upswift 允许通过 url 之类

临时远程访问给定端口
http://d-4307-5481-nc7nflrh26s.forwarding.upswift.io:56947/

这将映射到我可以定义的端口。 有了这个,我可以访问 pi 上的 VNC 服务器,在那里启动浏览器并访问我需要的网络服务器。

但我希望找到一种更优雅的方式,我可以从我的本地浏览器访问站点,并且 Pi 不需要 运行 桌面。

据我所知,这可以通过像 nginx 这样的反向代理来完成。 我找到了很多关于它的教程,但我有一点很挣扎:

在能够安装 nginx 并通过临时 upswift.io url 从我的本地浏览器访问它的默认索引页面后,我无法将其用作反向代理。

我认为我的 conf 需要看起来像

server {
    listen 80;
    server_name example.com;
    location / {
    proxy_pass http://192.x.x.2;
    }
}

其中 example.com 是访问设备的名称或 IP。 现在,这对我不起作用,因为该名称是动态的。 所以我想知道是否有办法配置 nginx,这样它就不需要那个名字了。我希望这是可能的,因为默认的网络服务器配置也可以在没有它的情况下工作。反向代理在这方面有什么不同吗?

或者,有没有比使用反向代理更好的方法来做我想做的事?

您可以尝试将其定义为默认块

server {
    listen 80 default_server;
    server_name _;
    location / {
      proxy_pass http://192.x.x.2;
    }
}