티스토리 뷰

기타

OpenResty란?

ipxy 2025. 4. 12. 15:49
728x90

 

📖 OpenResty란?

OpenResty
"Nginx를 기반으로 확장한 고성능 웹 플랫폼" 입니다.

  • 기본은 Nginx입니다.
  • 여기에 Lua 스크립트를 실행할 수 있는 환경을 추가해서
  • 고성능 웹 서버 + 동적 애플리케이션 서버를 동시에 구현할 수 있게 만든 것입니다.

공식 사이트: https://openresty.org/


✨ 핵심 특징

기반 Nginx (특히 nginx core + 모듈들)
스크립트 Lua (특히 LuaJIT 기반으로 고속 실행)
목적 API 서버, 웹 서버, 리버스 프록시, API Gateway, WAF 등
성능 수십만 동시 연결 처리 가능 (Nginx급)
확장성 Lua를 통해 복잡한 로직을 작성 가능
주요 모듈 포함 ngx_lua, ngx_http_lua_module, redis, memcached, mysql, postgres 클라이언트 등
사용 예시 Kong API Gateway, APISIX 등도 OpenResty 위에 구축됨

🛠 OpenResty 구성 요소

OpenResty는 단순한 웹서버가 아니라, 다음을 하나로 묶은 "플랫폼"입니다:

  • Nginx Core (Stable 버전 기반)
  • LuaJIT (고성능 Lua 엔진)
  • ngx_lua module (Nginx 안에서 Lua 코드 실행)
  • 다양한 공식/비공식 3rd-party Nginx 모듈
  • Lua용 라이브러리 (Redis, MySQL, HTTP Client 등)

즉, Nginx + Lua + 필요한 확장 모듈 세트를 **"패키지"**로 묶은 것이라고 보면 됩니다.


🎯 OpenResty를 쓰는 대표적인 이유

  • Nginx처럼 빠르고 안정적이면서
  • API Gateway나 동적 라우팅을 직접 개발할 수 있음
  • 복잡한 요청 처리(ex. JWT 인증, 요청 변조, 실시간 데이터 가공)를 Lua로 작성
  • 백엔드 서버 없이 웹 서버에서 로직 처리 가능
  • 비동기 네트워킹을 Lua로 쉽게 다룸 (ex. 비동기 Redis, 비동기 MySQL)

🔥 OpenResty vs Nginx

 

항목  Nginx  OpenResty
스크립트 처리 없음 (정적 설정파일) Lua 스크립트로 동적 처리 가능
플러그인 개발 C로 작성해야 함 Lua로 간단히 작성 가능
용도 웹서버, 리버스프록시 웹서버 + 동적 API 서버 + 복잡한 비즈니스 로직
설치 복잡성 심플 다소 복잡 (OpenResty 패키지 설치 필요)

📦 실제 활용 예시

  • Kong, APISIX 같은 API Gateway 제품 → OpenResty 기반
  • 자체 인증 서버 구축 (OAuth2 인증, JWT 발급)
  • 실시간 요청 가공 서버 (HTTP Proxy + Lua 가공)
  • WAF(웹 방화벽) 기능 추가
  • 동적 로드밸런서 구현
  • 캐시 서버 (Lua + Redis)

📝 간단 예시

OpenResty에서는 Nginx 설정 안에서 Lua 코드를 바로 넣을 수 있습니다.

location /hello {
    content_by_lua_block {
        ngx.say("Hello, OpenResty World!")
    }
}
  • location /hello 요청이 오면
  • Lua 코드로 Hello, OpenResty World!를 출력하는 간단한 서버가 됩니다.

 

OpenResty 기본 구조도

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함