איך ליצור אתר סטטי באתרי עובדים של Cloudflare

היי! שמי דימה, אני מוביל טכנולוגיות בצוות SysOps ב-Wrike. במאמר זה, אספר לכם כיצד ליצור אתר אינטרנט קרוב ככל האפשר למשתמש ולאוטומטי את פריסתו תוך 10 דקות ובמחיר של 5 דולר לחודש. המאמר כמעט ולא קשור לבעיות שאנחנו פותרים בתוך הצוות שלנו. אלא, זהו הניסיון האישי שלי והרשמים שלי מהיכרות עם טכנולוגיה חדשה עבורי. ניסיתי לתאר את השלבים בפירוט רב ככל האפשר כדי שההוראות יהיו שימושיות לאנשים עם רמות ניסיון שונות. אני מקווה שתיהנו. בואו נתחיל!

איך ליצור אתר סטטי באתרי עובדים של Cloudflare

אז אולי כבר מצאתם דרך פשוטה וזולה לארח אתר אינטרנט. אולי אפילו דרך חינמית, כפי שמתואר כאן מאמר נפלא.

אבל מה אם אתם עדיין משועממים ורוצים להתנסות בעולם הטכנולוגי החדש והאמיץ? נניח שאתם חושבים על אוטומציה של פריסות ורוצים להאיץ את האתר שלכם ככל האפשר? במאמר זה, נשתמש ב... Hugo, אך זה לא הכרחי.

אנחנו משתמשים ב-Gitlab CI/CD לאוטומציה, אבל מה לגבי האצה? בואו נפרוס את האתר ישירות ל-Cloudflare באמצעות אתרי עובדים.

מה נדרש כדי להתחיל:

חלק 1: התקנת הוגו

אם כבר התקנתם את הוגו, או אם אתם מעדיפים מחולל אתרים סטטי אחר (או שאתם לא משתמשים בו בכלל), תוכלו לדלג על חלק זה.

  1. הורד את הוגו מ https://github.com/gohugoio/hugo/releases

  2. מקם את קובץ ההפעלה של הוגו באחד מהקבצים המוגדרים נתיב שבילים

  3. אנו יוצרים אתר אינטרנט חדש: hugo new site blog.example.com

  4. שנה את הספרייה הנוכחית לזו שנוצרה זה עתה: cd blog.example.com

  5. בחר ערכת עיצוב (https://github.com/budparr/gohugo-theme-ananke/releases או מה שזה לא יהיה)

  6. בואו ניצור את הפוסט הראשון: hugo new posts/my-amazing-post.md

  7. הוסף תוכן לקובץ שנוצר: תוכן/פוסטים/הפוסט-המדהים-שלי.md.
    לאחר סיום הכל, שנה את ערך הטיוטה ל שקר

  8. יצירת קבצים סטטיים: hugo -D

עכשיו האתר הסטטי שלנו נמצא בתוך הספרייה ./פּוּמְבֵּי ומוכן לפריסה ידנית ראשונה.

חלק 2: הגדרת Cloudflare

עכשיו בואו נסתכל על ההתקנה הראשונית של Cloudflare. נניח שכבר יש לנו דומיין לאתר. כדוגמה, בואו ניקח blog.example.com.

שלב 1: צור רשומת DNS

ראשית נבחר את הדומיין שלנו, ולאחר מכן את פריט התפריט DNSאנו יוצרים בלוג A-record ומציינים עבורו כתובת IP פיקטיבית (זהו הכתובת הרשמית המלצה, אבל הם יכלו לגרום לזה להיראות יותר יפה).

איך ליצור אתר סטטי באתרי עובדים של Cloudflare

שלב 2: אסימון Cloudflare

  1. הפרופיל שלי -> אסימוני API טאב-> צור אסימון -> צור אסימון מותאם אישית

איך ליצור אתר סטטי באתרי עובדים של Cloudflare

כאן תצטרכו להגביל את הטוקן לחשבונות ואזורים, אך להשאיר את אפשרות העריכה עבור ההרשאות המפורטות בתמונה.

שמור את האסימון לעיון עתידי, נצטרך אותו בחלק השלישי.

שלב 3: קבל את מזהה חשבון ומזהה אזור

תְחוּם סקירה כללית → [צד צד ימין]

איך ליצור אתר סטטי באתרי עובדים של Cloudflareאלו שלי, בבקשה אל תשתמשו בהם :)

שמור אותם ליד האסימון, נצטרך אותם גם בחלק השלישי.

שלב 4: הפעלת עובדים

תְחוּם עובדים ניהול עובדים

בחרו שם ייחודי ואת התוכנית Workers → Unlimited (5 דולר לחודש היום). אם תרצו, תוכלו לעבור לגרסה החינמית מאוחר יותר.

חלק 3: פריסה ראשונה (פריסה ידנית)

ביצעתי את הפריסה הראשונה באופן ידני כדי לברר מה באמת קורה שם. למרות שכל זה יכול להיעשות בצורה פשוטה יותר:

  1. התקנת רנגלר: npm i @cloudflare/wrangler -g

  2. בואו נעבור למדריך הבלוגים שלנו: cd blog.example.com

  3. השקת רנגלר: wrangler init — site hugo-worker

  4. צור קונפיגורציה עבור wrangler (הזן את הטוקן כשתתבקש): wrangler config

עכשיו בואו ננסה לבצע שינויים בקובץ שיצרנו זה עתה. wrangler.toml (כאן רשימה מלאה של הגדרות אפשריות):

  1. אנו מציינים מזהה חשבון ומזהה אזור

  2. אנחנו משתנים מַסלוּל משהו כמו *blog.example.com/*

  3. אנו מציינים שקר עבור עובדים

  4. שנה את הדלי ל-./public (או היכן ממוקם האתר הסטטי שלך)

  5. אם יש לך יותר מדומיין אחד בנתיב, עליך לתקן את הנתיב בסקריפט העובד: אתר-עובדים/אינדקס.js (ראה פונקציה handleEvent)

מצוין, הגיע הזמן לפרוס את האתר באמצעות הפקודה wrangler publish.

חלק 4: אוטומציה של פריסה

מדריך זה נכתב עבור Gitlab, אך הוא מקבל את העיקר והפשטות של פריסות אוטומטיות באופן כללי.

שלב 1: יצירה והגדרה של הפרויקט שלנו

  1. צור פרויקט GitLab חדש והעלה את הספרייה site: blog.example.com כאשר כל התוכן צריך להיות ממוקם בספריית השורש של הפרויקט

  2. אנחנו שואלים משתנה CFAPITOKEN כָּאן: הגדרות CI / CDמשתנים

שלב 2: צור קובץ .gitlab-ci.yml והפעל את הפריסה הראשונה

צור קובץ .gitlab-ci.yml בשורש עם התוכן הבא:

stages:
  - build
  - deploy

build:
  image: monachus/hugo
  stage: build
  variables:
    GIT_SUBMODULE_STRATEGY: recursive
  script:
    - cd blog.example.com/
    - hugo
  artifacts:
    paths:
      - blog.example.com/public
  only:
    - master # this job will affect only the 'master' branch
  tags:
    - gitlab-org-docker #


deploy:
  image: timbru31/ruby-node:2.3
  stage: deploy
  script:
    - wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
    - tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
    - cd blog.example.com/
    - ../dist/wrangler publish
  artifacts:
    paths:
      - blog.example.com/public
  only:
    - master # this job will affect only the 'master' branch
  tags:
    - gitlab-org-docker #

בואו נריץ את הפריסה הראשונה באופן ידני (CI/CD צינורות הפעל צינור) או על ידי שליחת קומיט לענף הראשי. וואלה!

מסקנה

ובכן, אולי קצת הגזמתי בחשיבותו, וכל התהליך לקח קצת יותר מעשר דקות. אבל עכשיו יש לכם אתר מהיר עם פריסה אוטומטית וכמה רעיונות חדשים למה עוד תוכלו לעשות עם Workers.

 עובדי Cloudflare    Hugo    גיטלאב C

מקור: www.habr.com

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster