小编Cha*_*_99的帖子

为什么 nginx default_server 屏蔽更好的匹配?

我得到了我的本地 nginx 服务 3 个站点,分别具有以下配置。当使用AA.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)

nginx web-server dyndns

4
推荐指数
1
解决办法
780
查看次数

标签 统计

dyndns ×1

nginx ×1

web-server ×1