Nginx可以不设置server_name吗?

时间:2019-09-25 08:16:52

标签: nginx

我想在部署Docker映像之前测试服务器。

如果我在nginx中设置了server_name,则在我测试时,它会重定向到server_name中指定的网址,我不希望发生这种情况。

我还需要具有重定向规则,例如

server {

     server_name www.example.kr;
     return 301 $scheme://example.kr$request_uri;
} 

那我该如何使测试服务器不重定向到真实的www.example.com并让www.example.com重定向到example.com

1 个答案:

答案 0 :(得分:1)

您可以放置​​一个IF,检查主机名并将其重定向到真实服务器,然后注释掉server_name块并将其用作默认服务器(不确定它是否有意义,因为dns在测试服务器和生产服务器之间可能或应该有所不同)

配置可能类似于

server {
    if ($host = www.example.com) {
        return 301 http://$host$request_uri;
    }     
    listen 80 default_server;
    listen [::]:80 default_server;
    #server_name www.example.com;
    location / {
    .. your stuff
    }
}