代码之家  ›  专栏  ›  技术社区  ›  Andrew Eisenberg

如何在nginx中为proxy\u pass指令更改$request\u method参数?

  •  0
  • Andrew Eisenberg  · 技术社区  · 6 年前

    我需要修改nginx $request_method 在某些条件下,当我通过代理传递指令传递请求时。

    我在考虑用类似 map

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

    但是,有两个问题:

    1. map指令只允许在顶级http块中使用,不能在location指令中更改。
    2. 这也给了我一个机会 来自nginx的错误。

    我怎样才能更改密码 $request\u方法 申请代理通行证?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Alexander Azarov    6 年前

    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 将只对这一个进行评估。