nginx lua重置请求参数及常量备忘

本文主要讲述一下nginx lua如何重置请求参数以及整理了几类常量。

重置请求参数

获取请求参数

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

当请求uri中有多个同名参数时,ngx.var.arg_xx的做法是取第一个出现的值,ngx.req_get_uri_args[“xx”]的做法是返回一个table,该table里存放了该参数的所有值

重置参数

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

log级别常量

  • ngx.STDERR — 标准输出
  • ngx.EMERG — 紧急报错
  • ngx.ALERT — 报警
  • ngx.CRIT — 严重,系统故障,触发运维告警系统
  • ngx.ERR — 错误,业务不可恢复性错误
  • ngx.WARN — 告警,业务中可忽略错误
  • ngx.NOTICE — 提醒,业务比较重要信息
  • ngx.INFO — 信息,业务琐碎日志信息,包含不同情况判断等
  • ngx.DEBUG — 调试

使用实例

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

http status code常量

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)

主要用来设置http 返回状态码

使用实例

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

doc

  • Lua_Nginx_API

原文发布于微信公众号 - 码匠的流水账(geek_luandun)

原文发表时间:2017-11-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏耕耘实录

CentOS7中mysql-5.7.21-el7-x86_64.tar.gz版MySQL的安装与配置

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

892
来自专栏乐沙弥的世界

delete archivelog all 无法彻底删除归档日志?

    最近在因归档日志暴增,使用delete archivelog all貌似无法清除所有的归档日志,到底是什么原因呢?

941
来自专栏乐沙弥的世界

参数CONTROL_FILE_RECORD_KEEP_TIME和MAXLOGHISOTRY

--**************************************************

1793
来自专栏一枝花算不算浪漫

MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合

4309
来自专栏散尽浮华

Oracle数据库冷备份与热备份操作梳理

Oracle数据库的备份方式有冷备份和热备份两种,针对这两种备份的实施过程记录如下: 一、Oracle冷备份 概念 数据库在关闭状态下完成所有物理系统文件拷贝的...

5469
来自专栏FreeBuf

新手指南:DVWA-1.9全级别教程之SQL Injection

目前,最新的DVWA已经更新到1.9版本(点击原文查看链接),而网上的教程大多停留在旧版本,且没有针对DVWA high级别的教程,因此萌发了一个撰写新手教程的...

5118
来自专栏乐沙弥的世界

Oracle健康监控及健康检查(Health Monitor)

Oracle数据库包括一个名为Health Monitor的框架,用于运行诊断检查数据库的各种组件。Oracle健康监视器检查各种组件数据库,包括文件,内存,事...

2480
来自专栏杨建荣的学习笔记

配置dg broker的问题分析及修复(r6笔记第84天)

最近从同事那儿接手了一套新环境,备库因为服务器问题已经下架,重新配了一台服务器,所以需要搭一套备库,主库已经配置好了,而且同事已经把在主库把dg broker配...

3797
来自专栏乐沙弥的世界

Possible MySQL server UUID duplication for server

    在mysql enterprise monitor监控过程中出现这样的event事件,Topic: Possible MySQL server UUID...

772
来自专栏Hongten

python开发_configparser_解析.ini配置文件工具_完整版_博主推荐

====================================================

1121

扫码关注云+社区

领取腾讯云代金券