How to set proxy_http_version in LUA code before upstreaming the request in nginx

1.1k Views Asked by At

I want to change the proxy http version in Lua code programmatically. Is there any way?

Yes, I know that we can set it via the nginx config file in the location/server block. Is there any way that I can do it using Lua dynamically per request?

1

There are 1 best solutions below

6
On BEST ANSWER

Updated 14.10.2020

location / {
   content_by_lua_block {
       -- some logic here
       if flag then
          return ngx.exec("@http1_0")
       end
       return ngx.exec("@http1_1")
   }
}

location @http1_0 {
   proxy_pass ...;
   proxy_http_version 1.0;
   ...
}

location @http1_1 {
   proxy_pass ...;
   proxy_http_version 1.1;
   ...
}