njs 스크립팅 언어

njs는 JavaScript 언어의 하위 집합으로, nginx 기능을 확장합니다. njs는 ECMAScript 5.1(엄격한 모드)을 준수하여 개발되었으며, ECMAScript 6 이상 확장 프로그램을 사용합니다. 규정 준수 상태는 아직 발전 중입니다.

사용 사례

  • 요청이 업스트림 서버에 도달하기 전에 njs에서 복잡한 액세스 제어 및 보안 검사 처리
  • 응답 헤더 조작
  • 유연한 비동기식 콘텐츠 핸들러 및 필터 작성

기본 HTTP 예시

nginx에서 njs 사용:

  • njs 스크립트 언어 설치
  • njs 스크립트 파일 생성(예: http.js) njs 속성과 메서드 목록은 참고 자료를 참조하세요.
function hello(r) {
    r.return(200, "Hello world!");
}

export default {hello};
  • nginx.conf 파일에서 ngx_http_js_module 모듈을 활성화하고 http.js 스크립트 파일로 listening sockets 명령을 지정합니다.
load_module modules/ngx_http_js_module.so;

events {}

http {
    js_import http.js;
    
    server {
        listen 8000;

        location / {
            js_content http.hello;
        }
    }
}

nginx와 별개로 njs 개발과 디버깅에 사용할 수 있는 독립적인 명령줄 유틸리티도 있습니다.

테스트된 OS 및 플랫폼

  • FreeBSD / amd64;
  • Linux / x86, amd64, arm64, ppc64el;
  • Solaris 11 / amd64;
  • macOS / x86_64;