nginx lua 예제

URI 인수를 지정할 수도 있습니다. Nginx+Lua의 핵심 이점 중 하나는 완전히 비동기적이라는 것입니다. Nginx+Lua는 Nginx를 웹 서버의 인기 있는 선택으로 만든 동일한 이벤트 루프 모델을 상속합니다. “비동기”는 단순히 Nginx가 나가는 연결이나 파일 읽기와 같은 차단 작업을 대기할 때 코드를 중단하고 다른 들어오는 HTTP 요청의 코드를 실행할 수 있음을 의미합니다. 다음은 이를 설명하는 간단한 예입니다. foo.lua라는 다음 .lua 파일이 있다고 가정해 보겠습니다. PCRE JIT가 활성화되어 있는지 확인하려면 Nginx 또는 OpenResty의 ./configure 스크립트에 –with-debug 옵션을 추가하여 Nginx 디버그 로그를 활성화합니다. 그런 다음 error_log 지시문에서 “디버그” 오류 로그 수준을 활성화합니다. PCRE JIT가 활성화된 경우 다음 메시지가 생성됩니다: Nginx+Lua는 CloudFlare에서 수행하는 작업의 토대가 되었습니다. 오랜 C 개발자로서, 나는 끊임없이 뿐만 아니라 간단하고 친근하면서, 얼마나 강력하고 매우 표현 Lua 수 있습니다 에 의해 충격을 받고있다. 모듈은 Nginx 내에서 다양한 요소를 결합할 뿐만 아니라 Lua 언어의 힘을 사용자에게 노출시킬 수 있으므로 무한합니다.

이 모듈은 CPU 시간 및 메모리 사용량 측면에서 네이티브 C 언어 프로그램과 비교할 수 있는 성능 수준을 제공하면서 스크립팅의 완전한 유연성을 제공합니다. 특히 LuaJIT 2.x가 활성화된 경우이러한 경우가 있습니다. 예를 들어 POST 하위 요청을 발급하는 작업은 다음과 같이 수행할 수 있습니다.이 메서드에 대한 첫 번째 인수는 사전 개체 자체여야 합니다(예: 이 데이터 공유는 서버별로 수행되지 않고 작업자별로 수행됩니다.) 즉, Nginx 마스터 아래에 여러 nginx 작업자 프로세스가 있는 경우 데이터 공유는 이러한 작업자 간의 프로세스 경계를 넘을 수 없습니다. nil 또는 빈 Lua 문자열 값을 ngx.arg[1]로 설정하면 데이터 청크가 다운스트림 Nginx 출력 필터에 전혀 전달되지 않습니다. 이 단계에서 lua_shared_dict shm 저장소를 초기화할 수도 있습니다. 예를 ngx.timer.at 들어, 새 Lua 테이블이 있는 ngx.ctx 를 재정의하는 것도 지원됩니다.