太阳不下山 发表于 2021-8-22 22:27:01

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

    }

}

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

文档来源:http://www.zzvips.com/article/22416.html
页: [1]
查看完整版本: Nginx实现不同域名输出不同的服务器头信息方法