NGINX服务错误的网站,浏览位置不一致加深

我有这个奇怪的问题,我不明白。 我使用EE引擎脚本在linode上使用NGINX安装wordpress博客。 这在过去运作良好。

该脚本为我的域名(我们称之为example.com)安装一个VHOST,并在/ etc / nginx / sites-available的最终结果是:

  • 默认
  • example.com
  • 22222(pipe理工具,这些都不是问题)

问题 :

在林德设置DNS后,一切似乎工作正常。 Example.com拉起WordPress博客没有问题。 但是,在我的办公地点,NGINX会恢复到默认状态! …所以,在家里和其他地方,没有问题,而在其他一些地方(如办公室),NGINX会给我默认的index.xxx(NGINX是工作信息)。 同样的,笔记本电脑,相同的浏览器,一切,但不同的解决scheme,取决于我在哪个物理位置。

解决scheme1:

强制NGINX通过在configuration中使用default.com来使用example.com。 这是有效的,但是它不应该成为解决问题的方法,因为NGINX应该抓住域名并提供正确的网站。 我还有什么可以信任它,以便在将来设置更多网站时提供正确的页面?

解决scheme2:

文件:etc / nginx / sites-enabeled / default有以下几行:

# Default server configuration # server { listen 80 default_server; listen [::]:80 default_server; # SSL configuration # ...... 

每当我发表第二条听取指令时,即:

 listen [::]:80 default_server; 

而我离开第一个,然后NGINX正确parsing我的域名,而/ etc / nginx / sites-enabled / default仍然是default_server。

这似乎是正确的行为,对吗?

问题是:

所以,现在我想知道这是否是正确的行为,为什么是这样,如果这是一个错误或只是一个错误的configuration。

臭虫? 因为使用原始configuration(包括第二个指令),NGINX用来从我的家中正确旋转,而不是从我的工作场所位置(相同的笔记本电脑,浏览器等等)旋转。 不符

错configuration? :你告诉我为什么这样,以前只是从我的工作场所不能正确解决…

我的猜测是,您在example.com服务器configuration中没有IPv6 listen指令,但使用IPv6访问不起作用的位置的站点。

在这种情况下, listen [::]:80 default_server; 指令捕获请求,因为没有任何匹配的example.com 。 如果你删除这一行,服务器完全回退到IPv4,一切正常。

在这种情况下,正确的解决scheme是将listen [::]:80example.com服务器节。