ngx_lua 모듈 API 설명
7722 단어 학습 일지
lua_code_cache on | off;
역할: Lua 코드 캐 시 를 열거 나 닫 으 면 다음 명령 에 영향 을 줍 니 다: setby_lua_file , content_by_lua_file, rewrite_by_lua_file, access_by_lua_file 및 강제로 불 러 오 거나 reload Lua 모듈 등. 캐 시가 열 릴 때 LUA 코드 를 수정 하려 면 nginx 를 다시 시작 해 야 하 며, 열 리 지 않 을 때 는 사용 하지 않 습 니 다.개발 단 계 는 일반적으로 캐 시 를 닫 습 니 다.
역할 영역: main, server, location, location if
lua_regex_cache_max_entries 1024;
역할: 알 수 없 음 (캐 시 정규 표현 식 처리 결과 의 최대 수량 을 제한 하 는 것 같 습 니 다)
lua_package_path .../path... ;
역할: lua 코드 로 작 성 된 확장 라 이브 러 리 경 로 를 설정 합 니 다.
예: luapackage_path '/foo/bar/?.lua;/blah/?.lua;;';
lua_package_cpath '/bar/baz/?.so;/blah/blah/?.so;;';
역할: C 확장 lua 라 이브 러 리 경 로 를 설정 합 니 다.
set_by_lua $var '' [$arg1 $arg2];
set_by_lua_file $var [$arg1 $arg2 ...];
역할: Nginx 변 수 를 설정 합 니 다. 변수 값 은 lua 스 크 립 트 에서 return 으로 되 돌아 가 복잡 한 할당 논 리 를 실현 할 수 있 습 니 다.여 기 는 막 혔 습 니 다. Lua 코드 는 아주 빨리 해 야 합 니 다.
또한 기 존의 ngx 변 수 를 매개 변수 로 Lua 스 크 립 트 에 전송 할 수 있 으 며, ngx. arg [1], ngx. arg [2] 등 방식 으로 접근 할 수 있 습 니 다.
역할 영역: main, server, location, server if, location if
처리 단계: rewrite
content_by_lua '';
content_by_lua_file luafile;
역할 영역: location, location if
설명: 콘 텐 츠 프로세서, 요청 처리 및 출력 응답, contentby_lua 는 nginx 프로필 에 짧 은 Lua 코드 를 직접 작성 하고 후 자 는 lua 파일 을 사용 합 니 다.
rewrite_by_lua ''
rewrite_by_lua_file lua_file;
역할 영역: http, server, location, location if
내부 URL 재 작성 이나 외부 재 설정 을 실행 합 니 다. 전형 적 인 예 를 들 어 위 정적 인 URL 재 작성 입 니 다.기본 값 은 rewrite 처리 단계 의 마지막 에 실 행 됩 니 다.
주의, rewrite 사용 중by_lua 시 rewrite 오픈log on;이후 에 도 해당 하 는 rewrite log 가 보이 지 않 습 니 다.
access_by_lua 'lua code';
access_by_lua_file lua_file.lua;
역할: 액세스 제어 에 사 용 됩 니 다. 예 를 들 어 저 희 는 내부 네트워크 ip 만 접근 할 수 있 고 다음 과 같은 형식 을 사용 할 수 있 습 니 다.
access_by_lua '
if ngx.req.get_uri_args()["token"] ~= "123" then
return ngx.exit(403)
end ';
역할 영역: http, server, location, location if
header_filter_by_lua 'lua code';
header_filter_by_lua_file path_file.lua;
역할: header 와 쿠키 설정;
lua_need_request_body on|off;
역할: 요청 체 를 읽 을 지 여부, ngx. req. readbody () 함수 의 역할 은 유사 하지만 공식 적 으로 는 이 방법 을 사용 하 는 것 을 추천 하지 않 습 니 다.
lua_shared_dict shared_data 10m;
역할: 모든 워 커 프로 세 스 간 에 공유 전역 변수 표를 설정 합 니 다.lua 스 크 립 트 에서 다음 과 같이 접근 할 수 있 습 니 다.
예: local shareddata = ngx.shared.shared_data
10m 가 무슨 뜻 인지 모 르 겠 어 요.
init_by_lua 'lua code';
init_by_lua_file lua_file.lua;
역할 영역: http
설명: ginx Master 프로 세 스 가 설정 을 불 러 올 때 실행 합 니 다.보통 전역 설정 초기 화 / Lua 모듈 미리 불 러 오기
init_worker_by_lua 'lua code';
init_worker_by_lua_file luafile.lua;
역할 영역: http
설명: Nginx Worker 프로 세 스 가 시 작 될 때마다 호출 되 는 타이머 입 니 다. Master 프로 세 스 가 허용 되 지 않 으 면 init 에 만 있 습 니 다.by_lua 이후 호출;보통 설정 / 데 이 터 를 정시 에 끌 어 올 리 거나 백 엔 드 서비스의 건강 검진 에 사 용 됩 니 다.
######################
방법 과 상수 ######################
ngx.arg[index] #ngx , set_by_lua set_by_lua_file , .
ngx.var.varname # NGINX , lua ,
ngx.config.ngx_lua_version # ngx_lua
ngx.config.nginx_version #nginx
ngx.worker.exiting # worker
ngx.worker.pid # worker PID
ngx.config.nginx_configure # ./configure
ngx.config.prefix # prefix
core constans: #ngx_lua
ngx.OK (0)
ngx.ERROR (-1)
ngx.AGAIN (-2)
ngx.DONE (-4)
ngx.DECLINED (-5)
ngx.nil
http method constans: # ngx.location.catpure ngx.location.capture_multi .
ngx.HTTP_GET
ngx.HTTP_HEAD
ngx.HTTP_PUT
ngx.HTTP_POST
ngx.HTTP_DELETE
ngx.HTTP_OPTIONS
ngx.HTTP_MKCOL
ngx.HTTP_COPY
ngx.HTTP_MOVE
ngx.HTTP_PROPFIND
ngx.HTTP_PROPPATCH
ngx.HTTP_LOCK
ngx.HTTP_UNLOCK
ngx.HTTP_PATCH
ngx.HTTP_TRACE
http status constans: #http
ngx.HTTP_OK (200)
ngx.HTTP_CREATED (201)
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_BAD_REQUEST (400)
ngx.HTTP_UNAUTHORIZED (401)
ngx.HTTP_FORBIDDEN (403)
ngx.HTTP_NOT_FOUND (404)
ngx.HTTP_NOT_ALLOWED (405)
ngx.HTTP_GONE (410)
ngx.HTTP_INTERNAL_SERVER_ERROR (500)
ngx.HTTP_METHOD_NOT_IMPLEMENTED (501)
ngx.HTTP_SERVICE_UNAVAILABLE (503)
ngx.HTTP_GATEWAY_TIMEOUT (504)
Nginx log level constants: # , ngx.log .
ngx.STDERR
ngx.EMERG
ngx.ALERT
ngx.CRIT
ngx.ERR
ngx.WARN
ngx.NOTICE
ngx.INFO
ngx.DEBUG
##################
#API :
##################
print() # ngx.print() ,print() ngx.log()
ngx.ctx # lua table, ngx , ,
ngx.location.capture() # , 。
ngx.location.capture_multi() # , 。
ngx.status # . .
ngx.header.HEADER # http header , 。
ngx.req.set_uri() # URI,
ngx.set_uri_args(args) # args URI .
ngx.req.get_uri_args() # LUA TABLE, URL
ngx.req.get_post_args() # LUA TABLE, POST
ngx.req.get_headers() # lua table.
ngx.req.set_header() # header . .
ngx.req.read_body() # ngnix body .[ ]
ngx.req.discard_body() # body
ngx.req.get_body_data() # body
ngx.req.get_body_file() # ,
ngx.req.set_body_data() # BODY
ngx.req.set_body_file() # filename file data。
ngx.req.clear_header() #
ngx.exec(uri,args) # , uri
ngx.redirect(uri, status) # 301 302 。
ngx.send_headers() #
ngx.headers_sent # ngx.headers_sent=true
ngx.print(str) #
ngx.say() # ngx.print, say
ngx.log(log.level,...) # nginx
ngx.flush() # ( )
ngx.exit(http-status) #
ngx.eof() #
ngx.escape_uri() #URI ( , , php urlencode )
ngx.unescape_uri() #uri
ngx.encode_args(table) # tabel url
ngx.decode_args(uri) # table
ngx.encode_base64(str) #BASE64
ngx.decode_base64(str) #BASE64
ngx.crc32_short(str) # crs32_short
ngx.crc32_long(str) # crs32_long
ngx.hmac_sha1(str) # hmac_sha1
ngx.md5(str) # 16 MD5
ngx.md5_bin(str) # 2 MD5
ngx.today() # yyyy-mm-dd
ngx.time() #
ngx.now() #
ngx.update_time() #
ngx.localtime() # yyyy-mm-dd hh:ii:ss
ngx.utctime() # yyyy-mm-dd hh:ii:ss utc
ngx.cookie_time(sec) # COOKIE
ngx.http_time(sec) # http header
ngx.parse_http_time(str) # HTTP
ngx.is_subrequest # ( true or false)
ngx.re.match(subject,regex,options,ctx) #ngx ,
ngx.re.gmatch(subject,regex,opt) #
ngx.re.sub(sub,reg,opt) # ( )
ngx.re.gsub() #
ngx.shared.DICT #ngx.shared.DICT table
ngx.shared.DICT.get
ngx.shared.DICT.get_stale
ngx.shared.DICT.set
ngx.shared.DICT.safe_set
ngx.shared.DICT.add
ngx.shared.DICT.safe_add
ngx.shared.DICT.replace
ngx.shared.DICT.delete
ngx.shared.DICT.incr
ngx.shared.DICT.flush_all
ngx.shared.DICT.flush_expired
ngx.shared.DICT.get_keys
ndk.set_var.DIRECTIVE #
\ # 참고 문서:http://wiki.nginx.org/HttpLuaModuleZh#Core_constants ngx_lua 공식 문서
http://blog.csdn.net/imlsz/article/details/42915473 공식 API 의 주요 내용 번역
http://jinnianshilongnian.iteye.com/blog/2186448 대 ngxlua 문서 사용 에 대한 자세 한 예 가 있 습 니 다.
http://www.cnblogs.com/wangxusummer/p/4309007.html 대 ngxlua 의 모듈 방법 에 대한 간단 한 소개
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AT89C51 74HC595 레지스터를 통해 유수등 제어 -------proteus 모방먼저 위의 그림 그림에서 보듯이 단편기 P2^0, P2^1, P2^3을 통해 제어 신호를 잠금 메모리를 통해 LED로 전송하여 유수등 애플릿을 실현한다. 마스터 프로그램은 다음과 같습니다. 헤더 파일은 다음과 같습니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.