转载

NGINX的奇淫技巧 —— 3. 不同域名输出不同伺服器标识

大家或许会有这种奇葩的需求...要是同一台主机上, 需要针对不同的域名输出不同的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';  } }  

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

正文到此结束
Loading...