欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nginx实现不同域名输出不同的服务器头信息方法

程序员文章站 2023-11-25 23:33:46
大家或许会有这种奇葩的需求... 要是同一台主机上, 需要针对不同的域名输出不同的server头, 怎么实现呢? 我们需要用到模块 复制代码 代码如下: l...

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

我们需要用到模块

复制代码 代码如下:

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';
    }
}


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