一种做法是在 Nginx 的全局配置中添加如下参数: map 方式
一种做法是在 Nginx 的全局配置中添加如下参数:
http {
# 定义一个只允许 GET、POST、OPTIONS 的请求方法白名单
map $request_method $allowed_methods {
default "deny";
GET "allow";
POST "allow";
OPTIONS "allow";
}
# 针对所有的请求,只允许执行 $allowed_methods 中定义为 allow 的指令
server {
location / {
if ($allowed_methods = "deny") {
return 405;
}
add_header Allow $allowed_methods;
# add other directives accordingly
}
}
}
另一种更加规范和安全的做法是使用 limit_except
指令,示例如下:
limit_except 方式
另一种更加规范和安全的做法是使用 limit_except 指令,示例如下:
http {
server {
location / {
limit_except GET POST OPTIONS {
deny all;
}
add_header Allow "GET,POST,OPTIONS";
# add other directives accordingly
}
}
}
注意点:
header 可以配置在指定的任意字段里面
同时要想header 响应标头生效 响应码必须是以上响应码 配置的header头里面的配置才能生效
中配置的header头有继承的全局配置的级别,当没有其他地方配置header时将全局生效,如其他地方指定了add_header头参数, 全局配置的会终止, 无论响应代码如何,都将添加标头字段。always