Cloudflare Agent
개요
Cloudflare의 Workers 환경에서 NetFUNNEL과 유기적으로 통합되어, 사용자 요청이 발생하는 최전선에서 실시간으로 대기열을 제어합니다.
Worker 환경 설정
Cloudflare의 공식 문서를 참고하여 Cloudflare Workers의 환경을 설정하는 것이 가장 우선입니다.
Cloudflare의 공식 Workers 가이드 문서 확인 후 안내에 따라 Workers 환경을 설정합니다.
Worker 생성 및 설정
Worker 생성
- [Workers 및 Pages]로 이동합니다.
- Workers [생성]을 클릭합니다.
- [Hello world]를 클릭합니다.
- 배포하여 추가합니다.
Worker 에이전트 적용
- 우측 상단의 [코드 편집]을 클릭합니다.
- 문의를 통해 다운로드 받은 에이전트 파일을 준비해 주세요.
- 코드 편집기의 왼쪽 탭에서 [Explore]를 클릭하여 파일 목록이 보이도록 해주세요.
- 에이전트 파일을 넣어주세요.
- worker.js 파일을 열고 아래 코드를 작성해주세요.
import handleEvent from './{AGENT_FILE_NAME}'
export default {
async fetch(request, env, ctx) {
return await handleEvent(request, env, ctx);
},
};
- 우측 상단의 [배포] 버튼을 클릭하여 워커를 배포합니다.
Worker 설정
- 생성한 Worker를 선택하고 [설정] 메뉴로 들어갑니다.
- 도메인 및 경로에서 [+추가]를 클릭합니다.
- [경로]를 클릭합니다.
- [영역]에서 도메인을 선택하고, [경로]에 workers가 실행될 도메인을 넣습니다. (끝에 /*를 추가해야 하위 페이지에서도 Worker가 동작합니다.)
- [실패 시 열림(진행)]을 선택합니다.
- [경로 추가]를 클릭합니다.
- 아래 표를 참고하여 변수 및 암호를 추가합니다.
CLIENT_ID는 NetFUNNEL 콘솔에서 확인하세요.
| 유형 | 이름 | 값 |
|---|---|---|
| 텍스트 | CLIENT_ID | CLIENT_ID |
- 변수를 추가한 후 [배포]를 클릭합니다.
도메인 설정
3.2 에서 설정한 도메인을 CNAME으로 설정하여 해당 경로로 요청을 했을때 Worker가 실행될 수 있도록 설정해줍니다.
반드시 Proxy 타입으로 설정해야 합니다.
부가 기능
Good Bot 예외 처리
User-Agent에 굿봇 식별용 키워드가 포함된 경우, 해당 요청을 에이전트 제어 대상에서 제외합니다.
Worker 설정
- [Workers 및 Pages]에서 에이전트가 적용된 Worker를 선택하고 [설정] 탭으로 이동합니다.
- 아래 표를 참고하여 변수 및 암호에 환경 변수를 추가합니다.
Google, Microsoft, Yahoo, Apple, Facebook 봇을 예외 처리한 예시입니다.
| 유형 | 이름 | 값 |
|---|---|---|
| 텍스트 | GOOD_BOTS | Googlebot, Bingbot, Slurp, Applebot, facebookexternalhit |
- 추가 후 [배포]를 클릭합니다.
진입 키 자동 반납 처리
NetFUNNEL 에이전트는 진입 후 발급받은 키를 자동으로 반납하여 다음 대기자가 진입할 수 있도록 처리하고 있습니다. 키를 바로 반납하지 않고 세그먼트에서 설정한 타임아웃 시간에 반납하고 싶은 경우에 사용합니다.
Worker 설정
- [Workers 및 Pages]에서 에이전트가 적용된 Worker를 선택하고 [설정] 탭으로 이동합니다.
- 아래 표를 참고하여 변수 및 암호에 환경 변수를 추가합니다.
| 유형 | 이름 | 값 |
|---|---|---|
| 텍스트 | RETURN_KEY | true |
true(기본값)로 할 경우, 대기 완료 후 진입 시 에이전트에서 넷퍼넬 키를 자동으로 반납합니다. false로 할 경우 세그먼트에서 설정한 타임아웃 시간에 키가 반납 처리됩니다.
- 추가 후 [배포]를 클릭합니다.
대기실 도메인 변경
NetFUNNEL 대기실 페이지의 도메인은 agent-lib.stclab.com입니다. 해당 도메인을 서비스 중인 도메인에 맞게 변경하려면 원하는 도메인을 요청하시고, 설정에도 추가해야 합니다.
Worker 설정
- [Workers 및 Pages]에서 에이전트가 적용된 Worker를 선택하고 [설정] 탭으로 이동합니다.
- 아래 표를 참고하여 변수 및 암호에 환경 변수를 추가합니다.
| 유형 | 이름 | 값 |
|---|---|---|
| 텍스트 | VWR_PAGE_DOMAIN | http(s)://{CNAME_DOMAIN} e.g. https://wait.stclab.com |
- 추가 후 [배포]를 클릭합니다.
쿠키 도메인 설정
NetFUNNEL 에이전트는 진입 후 발급받은 키를 쿠키에 저장할 때 현재 페이지의 도메인을 기준으로 저장합니다. 만약 서로 다른 서브 도메인 간에 키를 공유해야할 경우 메인 도메인이 쿠키에 저장되도록 설정합니다.
netfunnel.stclab.com과 botmanager.stclab.com와 같이
서브 도메인이 서로 다른 페이지에서 쿠키를 공유해야 하면 .stclab.com으로 설정합니다.
Worker 설정
- [Workers 및 Pages]에서 에이전트가 적용된 Worker를 선택하고 [설정] 탭으로 이동합니다.
- 아래 표를 참고하여 변수 및 암호에 환경 변수를 추가합니다.
| 유형 | 이름 | 값 |
|---|---|---|
| 텍스트 | COOKIE_DOMAIN | .{MAIN_DOMAIN} e.g. .stclab.com |
- 추가 후 [배포]를 클릭합니다.