누구나 Workers 를 통 해 Cloudflare 에서 자 바스 크 립 트 를 실행 할 수 있 습 니 다.

4410 단어
1 년 전 오늘, Cloudflare 는 사람들 이 Cloudflare 의 변두리 서버 에서 코드 를 실행 할 수 있 도록 임 무 를 주 었 습 니 다.그때 우 리 는 그것 이 무슨 뜻 인지 아직 몰 랐 다.용기 기반 인가요?새로운 투 령 이 완비 되 지 않 은 분야 의 전속 언어?Lua?"함수?" 우 리 는 많은 생각 을 가지 고 있 습 니 다.
결국, 우 리 는 현재 보기에 매우 뚜렷 한 선택 을 한 것 같다. 자바 스 크 립 트 는 표준적 인 Service Workers API 를 사용 하여 V8 을 기반 으로 구 축 된 새로운 환경 에서 실행 된다.5 개 월 전에 우 리 는 우리 가 구축 하고 있 는 것 을 요약해 서 베타 테스트 를 시작 했다. \ \ \
현재 Cloudflare 는 수천 개의 스 크 립 트 를 배치 하고 수 십 억 개의 요청 에 서 비 스 를 제공 합 니 다. Cloudflare Workers 는 모든 사람 에 게 서 비 스 를 제공 할 준비 가 되 어 있 습 니 다. \ \ \
\
"VCL 을 포기 하고 Cloudflare Workers 를 사용 하면 창의 적 인 경로 선택 을 할 수 있 습 니 다. 지금 보다 수백 만 명의 npm 고객 에 게 자 바스 크 립 트 를 더 빨리 전달 할 수 있 습 니 다. 우 리 는 Cloudflare 플랫폼 에서 다음 세대 의 서 비 스 를 구축 할 것 입 니 다. 자 바스 크 립 트 를 사용 하여 실현 할 것 입 니 다!" \ \
- CJ Silverio, npm 회사 최고 기술 자 \
\\
진정한 구름 이란 무엇 인가?
과거 웹 응용 프로그램 코드 는 두 부분 으로 나 뉘 었 고 서버 의 일부분, 브 라 우 저의 일부분 으로 나 뉘 었 다.둘 사이 에는 방대 한 벙어리 네트워크 가 데 이 터 를 한 점 에서 다른 점 으로 전송 하 는 것 을 책임 진다.
우 리 는 이것 이 "구름" 의 취지 에 어 긋 난다 고 생각한다.
우 리 는 클 라 우 드 컴 퓨 팅 의 진정한 꿈 은 코드 가 인터넷 에 있다 는 것 이 라 고 생각한다.코드 는 "us - west - 4" 또는 "중앙 아시아 (뭄 바 이)" 에서 실행 되 는 것 이 아니 라 어디서나 실행 할 수 있 습 니 다. \ \ \
구체 적 으로 그것 이 가장 필요 한 곳 에서 운행 해 야 한다.뉴질랜드 사용자 에 게 응답 할 때 코드 는 뉴질랜드 에서 실행 되 어야 한다.데이터베이스 에 있 는 데 이 터 를 처리 할 때 코드 는 데 이 터 를 저장 하 는 기계 에서 실행 해 야 한다.제3자 API 와 상호작용 할 때 코드 는 위탁 관리 API 에서 실행 되 어야 합 니 다.인간 탐험가 가 화성 에 도착 하면 앱 응답 을 기다 리 는 데 한 시간 반 이 걸 리 지 않 습 니 다. 코드 는 화성 에서 실행 되 어야 합 니 다. \ \
Cloudflare Workers 는 우리 가 이 목 표를 향 해 나 아 가 는 첫걸음 이다.Worker 를 배치 할 때 30 초 안에 Cloudflare 의 전체 변두리 네트워크, 전 세계 100 여 곳 에 배 치 됩 니 다.도 메 인 에 있 는 모든 요청 은 사용자 와 가 까 운 Cloudflare 지점 의 Worker 에서 처리 되 며 사용자 가 자신의 장 소 를 고려 할 필요 가 없습니다.우리 가 접속 하 는 장소 가 갈수 록 많아 지고, 당신 의 코드 는 갈수 록 어디서나 실 행 될 수 있 습 니 다. \ \ \
그래.. 우 리 는 화성 에서 운행 하지 않 을 거 야.아직 없습니다.거기 있어, 에 른?
Worker 가 뭐 예요?
Cloudflare Workers 의 이름 은 웹 Workers 와 더 특별한 Service Workers 에서 유래 되 었 습 니 다. 이 W3C 표준 API 는 브 라 우 저 배경 에서 HTTP 요청 을 실행 하고 차단 하 는 스 크 립 트 를 대상 으로 합 니 다.Cloudflare Workers 는 같은 표준 API 를 사용 하여 작 성 했 지만 브 라 우 저 대신 Cloudflare 서버 에서 실 행 됩 니 다. \ \
다음은 당신 이 사용 해 야 할 도구 입 니 다: \ \ \
  • 자 바스 크 립 트 코드 를 실행 하고 최신 표준 언어 기능 을 사용 합 니 다. \ \t
  • HTTP 요청 을 차단 하고 수정 하여 URL, 상태, 헤더 정보 와 본문 에 응답 합 니 다. \ \t
  • Worker 에서 요청 에 직접 응답 하거나 다른 곳 으로 전송 합 니 다. \ \t
  • 제3자 서버 에 HTTP 요청 보 내기; \ \t
  • 여러 요청 을 직렬 또는 병렬 로 보 내 고 이 요청 의 응답 을 원본 요청 의 최종 응답 으로 조합 합 니 다. \ \t
  • 클 라 이언 트 에 게 응답 한 후에 비동기 요청 (예 를 들 어 기록 로그 나 분석) 을 보 냅 니 다. \ \t
  • 캐 시 와 같은 다른 Cloudflare 기능 을 제어 합 니 다. \

  • Workers 의 사용 방법 은 무수 합 니 다. 우 리 는 우리 의 고객 이 무엇 을 생각 하 는 지 보고 싶 습 니 다.다음은 우리 가 베타 테스트 에서 본 몇 가지 방안 입 니 다. \ \
  • 서로 다른 요청 형식 을 다른 소스 서버 로 이동 합 니 다. \ \t
  • 변두리 서버 의 HTML 템 플 릿 을 확장 하여 원본 서버 의 대역 폭 원 가 를 낮 춥 니 다. \ \ \t
  • 캐 시 내용 에 대한 접근 제어 적용; \ \ \t
  • 일부 사용 자 를 과도 서버 로 재 설정 합 니 다. \ \t
  • 완전히 다른 두 배경 사이 에서 A / B 테스트 를 수행 합 니 다. \ \t
  • 웹 API 에 전적으로 의존 하 는 '서버 없 음' 프로그램 구축; \ \ \t
  • 사용자 정의 보안 필 터 를 만 들 고 자신의 앱 에 특정 유해 한 데 이 터 를 막 습 니 다. \ \ \t
  • 재 작성 요청, 캐 시 적중률 증가; \ \ \t
  • 사용자 정의 부하 균형 과 고장 복구 논 리 를 실현 합 니 다. \ \t
  • 제품 서버 를 업그레이드 하지 않 고 응용 프로그램 을 빠르게 활용 하여 복원 합 니 다. \ \t
  • 사용자 의 브 라 우 저 에서 코드 를 실행 하지 않 고 분석 자 료 를 수집 합 니 다. \ \ \t
  • 셀 수 없 이 많다.

  • 다음은 하나의 예 입 니 다.
    \// A Worker:\// 1.      (“/”)               (  ,“/US/”);\// 2.     ;\// 3.               。\addEventListener('fetch', event =\u0026gt; {\  event.respondWith(handle(event.request))\})\\async function handle(request) {\  let url = new URL(request.url)\  if (url.pathname == \"/\") {\    //       (“/”)  。\    //            。\    //   ,         “/US/”。\    let country = request.headers.get(\"CF-IpCountry\")\    url.pathname = \"/\" + country + \"/\"\    return Response.redirect(url, 302)\\  } else if (url.pathname.startsWith(\"/images/\")) {\    //       ( “/images”   )  。\    //   ,          。\    let referer = request.headers.get(\"Referer\")\    if (referer \u0026amp;\u0026amp;\        new URL(referer).hostname != url.hostname) {\      return new Response(\          \"Hotlinking not allowed.\

    좋은 웹페이지 즐겨찾기