0. 概述

最近在做一个特性,考虑使用 Nginx 判断请求头做一些处理,于是就调研了一下,本文就记录一下结果。

1. 原生支持方式

不用额外的插件支持,Nginx 原生就支持判断 Header,这里有两种情况会用到,分别是:

1.1 判断是否有特定 Header

这个会很简单,直接用 http_ 的前缀然后加上 header 的小写即可,例如:

[[email protected]]# cat nginx.conf
if ($http_x_custom_header) {
    return 403;
}

1.2 判断 Header 的值

另外一种就是判断指定 Header 的值是否是期望的值,其实也比较简单,就是在前面的基础上增加一个判断:

[[email protected]]# cat nginx.conf
if ($http_user_agent != "rest-http-client/1.1") {
    return 403;
}

2. Ref