NGINX技巧 —— 不同域名输出不同伺服器标识

摘要:大家或许会有这种奇葩的需求要是同一台主机上需要针对不同的域名输出不同的头怎么实现呢我们需要用到模块像上面这样我们就可以来实现这功能了但这样靠谱吗靠谱但是不满足的编码风格我们绝不允许丑陋的代码让别人看着笑话我们追求极客的代码像这样子是不是好看

大家或许会有这种奇葩的需求...
要是同一台主机上, 需要针对不同的域名输出不同的Server头, 怎么实现呢?

我们需要用到ngx_headers_more模块

 
  
location / {
    if ( $host = "segmentfault.com" ){
        more_set_headers "Server: Nginx";
    }
    if ( $host = "0x01.segmentfault.com" ){
        more_set_headers "Server: Nginx_improved";
    }
    ....
}

像上面这样, 我们就可以来实现这功能了.
但这样靠谱吗? 靠谱, 但是不满足A.R.G.U.S. 的编码风格, 我们绝不允许丑陋的代码让别人看着笑话.

我们追求极客的代码:

map $host $server_x_tag{
    "segmentfault.com" "Nginx";
    "0x01.segmentfault.com" "Nginx_improved";
    default "Nginx";
}

server{
    server_name 123;
    location / {
        more_set_headers "Server: $server_x_tag";
    }
}

像这样子, 是不是好看多了?

你可能感兴趣的:(nginx,运维)