如何在Nginx中为proxy_pass指令更改$ request_method参数?

时间:2018-10-08 23:04:26

标签: rest nginx

当我通过proxy_pass指令移交请求时,在某些情况下需要更改nginx $request_method变量。

我当时正在考虑使用类似map指令的内容:

        map $request_method $request_method {
            default $request_method;
            DELETE POST;
            PUT POST;
        }

但是,有两个问题:

  1. map指令仅允许在顶级http块中使用,而不能在location指令内更改。
  2. 这也给了我来自nginx的重复的“ request_method”变量错误。

如何更改proxy_pass的$request_method

1 个答案:

答案 0 :(得分:0)

有一条指令proxy_method

您将需要通过map声明的另一个变量(是,在server级别):

map $request_method $my_proxy_method {
  default $request_method;
  DELETE POST;
  PUT POST;
}

然后在您的location中:

proxy_method $my_proxy_method;

请注意,Nginx变量的计算是延迟的,因此,如果您还有很多其他位置,则仅对此一个位置进行my_proxy_method的计算。