Nginx lua reset request parameter and constant memo

  nginx

Order

This article mainly describes how nginx lua resets the request parameters and sorts out several types of constants.

Reset request parameters

Get request parameters

local strider = ngx.var.arg_strider
local strider = ngx.req.get_uri_args["strider"]

When there are multiple parameters with the same name in the request uri, ngx.var.arg_xx takes the first value that appears, and ngx.req_get_uri_args[“xx”] returns a table in which all the values of the parameter are stored

Reset parameters

local args = ngx.req.get_uri_args()
args["userId"]="override value"
ngx.req.set_uri_args(args)

Log level constant

  • Ngx.stderr-standard output
  • Ngx.emerg-emergency error reporting
  • Ngx.alert-alert
  • NGX. CRIT-Severe, System Failure Triggers Operation and Maintenance Alarm System
  • NGX. ERR-Error, Business Irrecoverable Error
  • NGX. WARN-Alarm, Neglectable Errors in Business
  • NGX. NOTICE-Reminder, Business More Important Information
  • NGX. INFO-Information, business trivial log information, including judgment of different situations, etc.
  • Ngx.debug-debugging

Use instance

ngx.log(ngx.ERR,"error occur in ...")

Http status code constant

1xx

  • ngx.HTTP_CONTINUE (100) (first added in the v0.9.20 release)
  • ngx.HTTP_SWITCHING_PROTOCOLS (101) (first added in the v0.9.20 release)

2xx

  • ngx.HTTP_OK (200)
  • ngx.HTTP_CREATED (201)
  • ngx.HTTP_ACCEPTED (202) (first added in the v0.9.20 release)
  • ngx.HTTP_NO_CONTENT (204) (first added in the v0.9.20 release)
  • ngx.HTTP_PARTIAL_CONTENT (206) (first added in the v0.9.20 release)

3xx

  • ngx.HTTP_SPECIAL_RESPONSE (300)
  • ngx.HTTP_MOVED_PERMANENTLY (301)
  • ngx.HTTP_MOVED_TEMPORARILY (302)
  • ngx.HTTP_SEE_OTHER (303)
  • ngx.HTTP_NOT_MODIFIED (304)
  • ngx.HTTP_TEMPORARY_REDIRECT (307) (first added in the v0.9.20 release)

4xx

  • ngx.HTTP_BAD_REQUEST (400)
  • ngx.HTTP_UNAUTHORIZED (401)
  • ngx.HTTP_PAYMENT_REQUIRED (402) (first added in the v0.9.20 release)
  • ngx.HTTP_FORBIDDEN (403)
  • ngx.HTTP_NOT_FOUND (404)
  • ngx.HTTP_NOT_ALLOWED (405)
  • ngx.HTTP_NOT_ACCEPTABLE (406) (first added in the v0.9.20 release)
  • ngx.HTTP_REQUEST_TIMEOUT (408) (first added in the v0.9.20 release)
  • ngx.HTTP_CONFLICT (409) (first added in the v0.9.20 release)
  • ngx.HTTP_GONE (410)
  • ngx.HTTP_UPGRADE_REQUIRED (426) (first added in the v0.9.20 release)
  • ngx.HTTP_TOO_MANY_REQUESTS (429) (first added in the v0.9.20 release)
  • ngx.HTTP_CLOSE (444) (first added in the v0.9.20 release)
  • ngx.HTTP_ILLEGAL (451) (first added in the v0.9.20 release)

5xx

  • ngx.HTTP_INTERNAL_SERVER_ERROR (500)
  • ngx.HTTP_METHOD_NOT_IMPLEMENTED (501)
  • ngx.HTTP_BAD_GATEWAY (502) (first added in the v0.9.20 release)
  • ngx.HTTP_SERVICE_UNAVAILABLE (503)
  • ngx.HTTP_GATEWAY_TIMEOUT (504) (first added in the v0.3.1rc38 release)
  • ngx.HTTP_VERSION_NOT_SUPPORTED (505) (first added in the v0.9.20 release)
  • ngx.HTTP_INSUFFICIENT_STORAGE (507) (first added in the v0.9.20 release)

It is mainly used to set http return status codes.

Use instance

if token == nil then
    ngx.exit(ngx.HTTP_FORBIDDEN)
end

doc