Nginx返回301redirect所有域

我在我的服务器上运行nginx安装程序的多个域名如下:

server { listen 80; server_name domain1.com www.domain1.com; root /var/www/domain1/public_html; index index.php index.html index.html; } server { listen 80; server_name domain2.com www.domain2.com; return 301 https://plusgoogle.com/+somepage; } server { listen 80; root /var/www/other_domains/public_html; index index.php index.html index.html; } 

每个服务器块都在其单独的文件(domain1.conf,domain2.conf等)

现在来解决这个问题:

  • Domain1正常工作,因为它应该
  • 域2 – 不幸的是现在不能testing,与godaddy有一些问题,但我很确定它会正常工作。
  • 其他域redirect到domain2设置的301 url

我有点困惑,我可以理解,如果域2将加载其他域的根,但是当我在configuration中一起指定server_name 301与其他域redirect到301?

感谢帮助

更新

  • 你确定你的浏览器没有caching – 我试图打开不同的设备上的网站,我认为corevs的

  • 这些域在现实中是不同的,就像它们在上面的例子中一样 – 是的,实际上我不明白为什么我不给域名:domain1 = tomasdostal.com,domain2 = autodopravadostal.cz,其他域= casull。 info,忘记网站等

  • 第二个服务器块的configuration存在于其他任何地方或者只在这个configuration文件中 – 我设置了100%新的aws实例,所以我非常肯定它只有在那里。

您应该阅读nginx 进程请求的方式 。

在你的情况下,具有未知域的请求将落入默认服务器。 通常是第一个,但可以是任何。 要明确定义默认服务器,您应该在listen指令中使用default_server标志。 所以在你应该写的所有其他域的服务器块中:

 listen 80 default_server;