防火墙拦截PUT和DELETE方法

防火墙设置,只允许POST和GET请求通过,不允许PUT和DELETE请求。

  1. 前端必须改代码,这个无法绕过,所有的PUT/DELETE请求,都要求改成POST,并携带特殊Header:
    所有的PUT请求,要携带Header:X-HTTP-Method-Override: PUT
    所有的DELETE请求,要携带Header:X-HTTP-Method-Override: DELETE
  2. nginx根据Header:X-HTTP-Method-Override,转换请求method
1
2
3
4
5
6
7
8
9
if ($http_X_HTTP_Method_Override ~* 'DELETE') {
set $method DELETE;
}

if ($http_X_HTTP_Method_Override ~* 'PUT') {
set $method PUT;
}

proxy_method $method;