다중 게이트웨이 (동일 호스트)

대부분의 환경에서는 하나의 게이트웨이만으로 충분합니다. 단일 게이트웨이가 여러 메시징 연결과 에이전트를 동시에 처리할 수 있기 때문입니다. 더 강력한 격리나 이중화가 필요한 경우(예: 복구 봇), 격리된 프로필/포트를 사용하여 별도의 게이트웨이를 실행하세요.

격리 체크리스트 (필수)

  • OPENCLAW_CONFIG_PATH — 인스턴스별 설정 파일
  • OPENCLAW_STATE_DIR — 인스턴스별 세션, 인증정보, 캐시
  • agents.defaults.workspace — 인스턴스별 작업 공간 루트
  • gateway.port (또는 --port) — 인스턴스마다 고유해야 함
  • 파생 포트(브라우저/캔버스)가 겹치지 않아야 함

이 값들을 공유하면 설정 경합이나 포트 충돌이 발생합니다.

권장 방식: 프로필 (--profile)

프로필은 OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH를 자동으로 구분하고 서비스 이름에 접미사를 추가합니다.

# 메인
openclaw --profile main setup
openclaw --profile main gateway --port 18789

# 복구용
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001

프로필별 서비스 등록:

openclaw --profile main gateway install
openclaw --profile rescue gateway install

복구 봇 가이드

동일 호스트에서 다음 항목을 별도로 갖춘 두 번째 게이트웨이를 실행하세요:

  • 프로필/설정
  • 상태 디렉터리
  • 작업 공간
  • 기본 포트 (및 파생 포트)

이렇게 하면 복구 봇이 메인 봇과 격리되어, 주 봇이 다운됐을 때 디버깅하거나 설정을 변경할 수 있습니다.

포트 간격: 기본 포트 간에 최소 20개의 포트 여유를 두어 파생 브라우저/캔버스/CDP 포트가 충돌하지 않도록 하세요.

설치 방법 (복구 봇)

# 메인 봇 (기존 또는 신규, --profile 매개변수 없이)
# 포트 18789 + Chrome CDC/Canvas/... 포트에서 실행
openclaw onboard
openclaw gateway install

# 복구 봇 (격리된 프로필 + 포트)
openclaw --profile rescue onboard
# 참고:
# - 작업 공간 이름에 기본적으로 -rescue 접미사가 붙음
# - 포트는 최소 18789 + 20 이상이어야 하며,
#   19789과 같이 완전히 다른 기본 포트를 선택하는 것이 좋음
# - 나머지 온보딩 과정은 일반적인 경우와 동일

# 서비스 설치 (온보딩 중 자동으로 되지 않은 경우)
openclaw --profile rescue gateway install

포트 매핑 (파생)

기본 포트 = gateway.port (또는 OPENCLAW_GATEWAY_PORT / --port).

  • 브라우저 제어 서비스 포트 = 기본 + 2 (루프백 전용)
  • 캔버스 호스트는 게이트웨이 HTTP 서버에서 제공 (gateway.port와 동일한 포트)
  • 브라우저 프로필 CDP 포트는 browser.controlPort + 9 .. + 108 범위에서 자동 할당

이 값들을 설정이나 환경 변수에서 직접 지정하는 경우, 인스턴스마다 고유하게 유지해야 합니다.

브라우저/CDP 관련 참고 (흔한 실수)

  • 여러 인스턴스에서 browser.cdpUrl을 동일한 값으로 고정하지 마세요.
  • 각 인스턴스는 자체 브라우저 제어 포트와 CDP 범위(게이트웨이 포트에서 파생)가 필요합니다.
  • 명시적 CDP 포트가 필요한 경우, 인스턴스별로 browser.profiles.<name>.cdpPort를 설정하세요.
  • 원격 Chrome: 인스턴스별, 프로필별로 browser.profiles.<name>.cdpUrl을 사용하세요.

수동 환경 변수 예시

OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
OPENCLAW_STATE_DIR=~/.openclaw-main \
openclaw gateway --port 18789

OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
OPENCLAW_STATE_DIR=~/.openclaw-rescue \
openclaw gateway --port 19001

빠른 확인

openclaw --profile main status
openclaw --profile rescue status
openclaw --profile rescue browser status