我得到了我的本地 nginx 服务 3 个站点,分别具有以下配置。当使用A或A.domain请求时,它们在我的本地 LAN 中运行良好(参见下面的 dnsmasq 配置)。现在,我希望通过像B.domain.ddns.net这样的 dyndns 域从 Internet 上访问这些站点之一。
我将路由器配置为将端口 81(以免意外屏蔽路由器的管理界面)转发到本地服务器的端口 80,并添加了以下示例中当前注释掉的行(default_server 行除外)。
我输入了http://B.domain.ddns.net:81作为 URL。它没有用。
我认为子域可能以某种方式不适用于 dyndns 系统,因此我另外将一个站点设置为default_server
.
现在,该站点可从 Internet 访问,但突然其他站点之一在本地不再可用,无论是C还是C.domain,而是提供默认站点。
有人知道为什么会这样吗?或者为什么 dyndns 域首先不匹配?或者如何设置访问日志以向我显示带有域字符串的请求站点?或者,也许是否有更好的方法将一个站点提供给 Internet,而将其他站点提供给本地站点?
站点A
server {
listen 80;
listen [::]:80;
server_name A.domain, A;
...
Run Code Online (Sandbox Code Playgroud)
站点B
server {
listen 80;
# used this instead of previous line after specific domain below didn't work
# listen 80 default_server;
listen [::]:80; …
Run Code Online (Sandbox Code Playgroud)