Hello!
Both the ngx.req.read_body and ngx.req.get_body_data are irrelevant with the directive lua_socket_read_timeout, the lua_socket_read_timeout is used to set the default timeout value for the network I/O launched by Cosocket.
As a alternaive way, you may want to use downstream Cosocket ngx.req.socket to manipulate the downstream connection, and set the timeout by Cosocket settimeout or settimeouts APIs. Note in this case, you cannot mix the using of downstream Cosocket and APIs like ngx.send_header or ngx.print and etc.