콘텐츠로 이동

프록시 호스트

프록시 호스트는 하나 이상의 도메인으로 들어온 요청을 서비스(전달 대상)로 전달하고, 그 과정에서 TLS와 보호 기능을 적용합니다. 처음 설정하는 방법은 첫 프록시 호스트를 참고하세요.

프록시 호스트

목록에는 호스트마다 전달 대상, 인증서, 켜져 있는 기능(HTTPS, WebSocket, 접속 대기열, Rate Limit, 공격 차단, 보안 헤더 …)이 표시됩니다. 상태의 스위치를 끄면 호스트를 삭제하지 않고 멈출 수 있습니다.

입력 화면 섹션별 안내

프록시 호스트 입력 화면

도메인

도메인을 입력하고 Enter나 쉼표를 누릅니다. *.example.com 같은 와일드카드도 쓸 수 있습니다. 하나의 도메인은 프록시 호스트나 리디렉션 호스트 하나에만 속할 수 있습니다.

전달 대상

서비스의 프로토콜, 호스트 / IP, 포트입니다. WebSocket이나 SSE(server-sent events)를 쓰는 앱이라면 WebSocket 지원을 켭니다.

전달 대상 예시

대상 예 참고
다른 컨테이너 shop-web 포트 80 Corvus와 같은 Docker 네트워크에 있어야 합니다. 그 네트워크를 corvus 서비스에 추가하세요
사설 또는 공인 IP 10.3.2.39 포트 8084
Docker 호스트의 서비스 127.0.0.1 또는 localhost NPM과 마찬가지로 컨테이너 안에서 이 주소는 Docker 호스트를 뜻하며, host.docker.internal은 필요 없습니다. 서비스가 컨테이너에서 접속할 수 있는 주소(0.0.0.0 또는 Docker 브리지)에서 수신해야 하고, 호스트 방화벽이 Docker 네트워크를 허용해야 합니다

호스트의 127.0.0.1에서만 수신하는 서비스에 접속하려면 Corvus를 호스트 네트워크로 실행하세요.

사용자 지정 위치

/api 같은 경로를 다른 서비스로 보냅니다. 사용자 지정 위치를 참고하세요.

TLS

TLS 섹션

  • 인증서: 기존 인증서, 새 인증서 요청 (Let's Encrypt), 또는 없음 (HTTP만). 인증서를 참고하세요.
  • HTTPS로 강제 이동은 HTTP를 HTTPS로 리디렉션하고 Strict-Transport-Security를 보냅니다.
  • HTTP/2는 HTTPS 연결에서 HTTP/2를 사용합니다.

클라이언트 IP

실제 방문자 IP를 어디서 가져올지 정합니다. 규칙, 차단, Rate Limit, 로그에 이 IP를 사용합니다.

옵션 이럴 때 사용
직접 연결 방문자가 Corvus에 바로 접속합니다(기본값)
Cloudflare 사이트가 Cloudflare 뒤에 있습니다. CF-Connecting-IP는 Cloudflare 공식 IP 대역에서 온 요청만 신뢰합니다
신뢰 프록시 앞에 다른 프록시나 로드 밸런서가 있습니다. 그 대역과 헤더는 네트워크 페이지에서 설정합니다

Warning

신뢰 프록시를 잘못 설정하면 클라이언트가 IP를 속여 Rate Limit과 차단을 피할 수 있습니다.

보호

보호 섹션

옵션 하는 일
Rate Limit 정책 IP별 요청 수를 제한합니다. 차단과 Rate Limit을 참고하세요
비밀번호 보호 사이트를 열기 전에 사용자 이름과 비밀번호를 묻습니다(HTTP Basic 인증). 스테이징 사이트나 내부 도구에 알맞습니다
알려진 공격 경로 차단 SQL 인젝션, 경로 순회, 스캐너 탐색 같은 흔한 공격 패턴을 차단합니다. 기본으로 켜져 있습니다
요청 본문 검사 JSON, 폼, multipart 본문에서 알려진 공격 페이로드를 검사합니다: 끄기, 기록만, 차단
공격 대응 모드 모든 방문자에게 브라우저 챌린지를 통과하게 합니다. 챌린지와 공격 대응 모드를 참고하세요
보안 헤더 브라우저 보안 헤더를 추가합니다(기본 또는 엄격). 앱이 이미 보내는 헤더는 바꾸지 않습니다

접속 대기열

접속 대기열을 연결하고 접속 대기열 적용 경로(보통 /)를 고릅니다.

고급

고급 섹션

옵션 기본값 의미
최대 업로드 크기 100 MB 요청 본문의 최대 크기. 0은 무제한입니다. 이보다 크면 413을 받습니다
업스트림 타임아웃 60초 (WebSocket은 1시간) Corvus가 서비스의 응답을 기다리는 시간
Gzip 압축 켜짐 텍스트 응답(HTML, CSS, JS, JSON …)을 압축합니다. 이미 압축된 응답은 그대로 전달합니다
고급 nginx 설정 비어 있음 호스트의 server 블록에 넣을 Nginx 지시어(관리자 전용)

상태

사용을 끄면 호스트 설정은 남아 있지만 게이트웨이에서는 빠집니다.

프록시 호스트를 통해 콘솔에 접속한 경우(예: https://corvus.example.com) 목록에서 그 호스트에 콘솔 접속 중 표시가 붙습니다. 이 호스트를 편집하면 안내가 나오고, 끄거나 삭제할 때는 먼저 확인을 받습니다. 그 주소로는 콘솔에 접속할 수 없게 되기 때문입니다. 서버의 9443 포트 (https://서버-IP:9443)로는 언제든 접속할 수 있습니다.

변경이 적용되는 방식

저장 및 배포는 새 설정 버전을 만들고 openresty -t로 검사한 뒤, 연결을 끊지 않고 적용합니다. 검사에 실패하면 아무것도 바뀌지 않고 오류를 보여 줍니다. 모든 버전은 배포 이력에 남으며, 여기서 생성된 파일을 확인하고 이전 버전으로 되돌릴 수 있습니다.

배포 이력