⚙ 게이트웨이Q 엔진 · 한선씨 네이티브

nginx는 이제 그만.
YAML 한 파일로 전 서비스를 라우팅한다.

크라우니 게이트웨이는 한선씨(크라우니어) 네이티브 단일 프로세스로 동작하는 리버스 프록시다. 런타임 npm 의존성 0(TLS는 stunnel 위임), 워커 단위 무중단, P2P 페일오버(베타), 자가치유 워치독을 기본 탑재했다.

문서 보기 모니터 열기 →
# 커뮤니티 자가호스트 — 단일 원라이너 $ tar -xzf 게이트웨이Q-패키지.tar.gz && cd 게이트웨이Q-패키지 && bash Q설치.sh
Ecosystem

하나의 관문, 모든 크라우니 서비스

게이트웨이가 라우팅하는 하위 서비스로 여기서 바로 이동한다. 목록은 생태계.psv 하나로 관리되어 어느 서비스에서든 같은 네비를 공유한다.

Features

nginx가 하던 일, 한선씨 프로세스 하나로

런타임 npm 의존성 없이 라우팅부터 페일오버까지 — TLS 종단은 stunnel에 위임한다.

🧬

한선씨 네이티브 단일 프로세스

C 런타임이나 별도 언어 의존 없이 크라우니어(한선씨) 자체로 컴파일된 단일 바이너리로 동작.

📄

YAML 단일 파일 라우팅

gateway.yaml 하나로 전 서비스 도메인·경로·업스트림·헤더를 선언. 라이브 실측 293 라우트 운용.

🔒

Zero-config TLS

stunnel 종단으로 인증서 설정을 최소화. 8443 고정 포트에서 바로 HTTPS.

🛡

CORS·RateLimit·WAF

gateway.yaml에 도메인별 CORS·속도제한·방화벽 규칙을 스키마로 선언. WAF/방어 판정 코어는 라이브 배선 완료, CORS·RateLimit 라우팅 계층 배선은 진행 중.

🔌

WebSocket 통과

업그레이드 헤더를 그대로 프록시해 실시간 채널·소켓 서비스를 무변형 지원.

🗂

SPA·정적 서빙

정적 자산과 SPA 폴백 라우팅을 별도 웹서버 없이 게이트웨이가 직접 서빙.

워커 단위 무중단

CROWNY_TCP_REUSEPORT로 N개 워커가 동일 포트를 공유 — 워커 kill 시나리오에서 요청 유실 없음(느린 백엔드가 고사하는 경우는 워치독이 감지해 자가치유).

🕸

P2P 피어 메시 페일오버 베타

피어 하트비트·페일오버 프로토콜 구현 완료. 라이브 다중노드 배선은 로드맵(현재는 단일 노드 실측만 검증됨).

🩺

3단계 트러블대응 + 자가치유 워치독

요청→프로세스→노드 순으로 원인을 좁혀가는 판정 코어. sysguard가 충돌·wedge를 감지해 스스로 복구.

Architecture

launchd 감독부터 P2P 페일오버까지

단일 노드 내부는 감독-워커 구조, 노드 간에는 피어 메시 구조(베타).

launchd plist 상시감독 Q감독 워커 스폰·롤링재활용 워커 #1 :8080 REUSEPORT 워커 #2 :8080 REUSEPORT 워커 #N … stunnel :8443 TLS 종단 관제 :9152 모니터/헬스 워치독 wedge 감지·자가치유 Q피어 노드 B P2P 하트비트 Q피어 노드 C 페일오버 대기 실선 = 노드 내부 감독/프록시 · 점선 = 노드 간 P2P 하트비트/페일오버

라이브 검증: 2워커 REUSEPORT 무중단 — 워커 강제종료 중 30/30, 트래픽 버스트 20/20 요청 유실 없음.

Compare

일반 리버스 프록시(nginx류) 대비

과장 없이 — 우리가 앞선 축과, 상대가 나은 축을 함께 적는다.

크라우니 게이트웨이일반 리버스 프록시(nginx류)
설정 방식YAML 단일 파일conf.d 다중 파일 + include 체인
런타임 언어한선씨(크라우니어) 네이티브C + 모듈별 별도 언어(Lua 등)
외부 의존성런타임 npm 0(TLS=stunnel)OS 패키지·모듈 의존
헬스 판정3진 상태(정상/의심/장애)이진 up/down
다중 노드 페일오버P2P 피어 메시 내장별도 LB/오케스트레이터 필요
무중단 재기동REUSEPORT N워커 롤링reload 지원(모듈별 편차)
단일 프로세스 처리량nginx 우위실측 84 RPS(단일 스레드, N워커 수평확장 대응)수만 RPS급(이벤트루프 다년 최적화)
Install

커뮤니티 자가호스트 3단계

아키텍처가 다르면 동봉 바이너리 대신 자동 재빌드된다.

1

패키지 받기

tar -xzf 게이트웨이Q-패키지.tar.gz
cd 게이트웨이Q-패키지
2

Q설치.sh 실행

bash Q설치.sh
# 기본: GWQ_WORKERS=2 GWQ_PORT=8080
3

gateway.yaml 편집

cp gateway.example.yaml gateway.yaml
# 도메인/업스트림 라우트 선언 후 재기동
Editions

필요한 만큼만

과장된 가격표 대신 실제 배포 형태로 안내한다.

자가호스트

Community

무료
  • 단일 노드 게이트웨이
  • YAML 라우팅·TLS 종단
  • 무중단 N워커(REUSEPORT)
확장

Enterprise

문의
  • arch.crowny.org 연계 예정(준비 중)
  • 다노드 통합 관제
  • 맞춤 트러블대응 체계