Cloudflare Workers saytlarida qanday qilib statik sayt yaratish mumkin

Salom! Mening ismim Dima, men Wrike-dagi SysOps jamoasining texnik rahbariman. Ushbu maqolada men sizga 10 daqiqada va oyiga 5 dollar ichida veb-saytni foydalanuvchiga iloji boricha yaqinroq qilish va uni joylashtirishni avtomatlashtirishni aytib beraman. Maqolaning bizning jamoamiz ichida hal qiladigan muammolarga deyarli hech qanday aloqasi yo'q. Bu mening shaxsiy tajribam va men uchun yangi texnologiya bilan tanishish taassurotlari. Ko'rsatmalar turli tajribaga ega bo'lgan odamlar uchun foydali bo'lishi uchun men qadamlarni iloji boricha batafsil tasvirlashga harakat qildim. Sizga yoqadi degan umiddaman. Bor!

Cloudflare Workers saytlarida qanday qilib statik sayt yaratish mumkin

Shunday qilib, ehtimol siz allaqachon veb-saytni joylashtirishning oddiy va arzon usulini topdingiz. Ehtimol, bu erda tasvirlanganidek, hatto bepul ajoyib maqola.

Ammo to'satdan siz hali ham zerikasiz va texnologiyaning jasur yangi dunyosiga tegishni xohlaysizmi? Aytaylik, siz joylashtirishni avtomatlashtirish haqida o'ylayapsizmi va saytingizni iloji boricha tezlashtirishni xohlaysizmi? Ushbu maqolada biz foydalanamiz Hugo, lekin bu ixtiyoriy.

Biz avtomatlashtirish uchun Gitlab CI/CD dan foydalanamiz, ammo tezlashtirish haqida nima deyish mumkin? Keling, saytni to'g'ridan-to'g'ri Cloudflare-ga o'rnatamiz Ishchilar saytlari.

Boshlash uchun nima kerak:

1-qism: Hugo-ni o'rnatish

Agar sizda Hugo allaqachon o'rnatilgan bo'lsa yoki boshqa statik sayt generatorini afzal ko'rsangiz (yoki umuman foydalanmasangiz), bu qismni o'tkazib yuborishingiz mumkin.

  1. Hugo dan yuklab oling https://github.com/gohugoio/hugo/releases

  2. Hugo bajariladigan faylni ichida belgilanganlardan biriga ko'ra joylashtiramiz PATH yo'llari

  3. Yangi sayt yaratish: hugo new site blog.example.com

  4. Joriy katalogni yangi yaratilgan katalogga o'zgartiring: cd blog.example.com

  5. Dizayn mavzusini tanlang (https://github.com/budparr/gohugo-theme-ananke/releases yoki nima bo'lishidan qat'iy nazar)

  6. Keling, birinchi postni yarataylik: hugo new posts/my-amazing-post.md

  7. Yaratilgan faylga tarkib qo'shing: content/posts/my-amazing-post.md.
    Hamma narsa tugagach, qoralama qiymatini o'zgartiring yolg'on

  8. Statik fayllarni yaratish: hugo -D

Endi bizning statik saytimiz katalog ichida joylashgan ./ommaviy va birinchi qo'lda joylashtirishingizga tayyor.

2-qism: Cloudflare-ni sozlash

Endi Cloudflare-ning dastlabki sozlamalarini ko'rib chiqamiz. Aytaylik, bizda allaqachon sayt uchun domen mavjud. Misol tariqasida olaylik blog.example.com.

1-qadam: DNS yozuvini yarating

Birinchidan, bizning domenimizni, keyin esa menyu bandini tanlang DNS. Biz A-record blogini yaratamiz va u uchun qandaydir xayoliy IP-ni ko'rsatamiz (bu rasmiy tavsiya, lekin ular buni biroz chiroyliroq qilishlari mumkin edi).

Cloudflare Workers saytlarida qanday qilib statik sayt yaratish mumkin

2-qadam: Cloudflare tokeni

  1. Mening profilim -> API tokenlari tab-> Token yarating -> Maxsus token yarating

Cloudflare Workers saytlarida qanday qilib statik sayt yaratish mumkin

Bu erda siz tokenni hisoblar va zonalar bilan cheklashingiz kerak bo'ladi, lekin rasmda ko'rsatilgan ruxsatlar uchun Tahrirlash opsiyasini qoldiring.

Tokenni kelajak uchun saqlang, uchinchi qismda bizga kerak bo'ladi.

3-qadam: Buxgalteriya hisobi va zonani oling

domen β†’ haqida umumiy ma'lumot β†’ [oβ€˜ng yon panel]

Cloudflare Workers saytlarida qanday qilib statik sayt yaratish mumkinBular meniki, ulardan foydalanmang, iltimos :)

Ularni token yonida saqlang, uchinchi qismda bizga ham kerak bo'ladi.

4-qadam: Ishchilarni faollashtirish

domen β†’ ishchilar β†’ Ishchilarni boshqarish

Biz noyob nom va tarifni tanlaymiz Ishchilar β†’ Cheksiz (bugungi kunda oyiga $ 5). Agar xohlasangiz, keyinchalik bepul versiyaga yangilashingiz mumkin.

3-qism: Birinchi o'rnatish (qo'lda joylashtirish)

Men u erda nima bo'layotganini bilish uchun birinchi qo'lda joylashtirishni qildim. Garchi bularning barchasini oddiyroq qilish mumkin:

  1. Wranglerni o'rnating: npm i @cloudflare/wrangler -g

  2. Keling, blogimizning katalogiga o'tamiz: cd blog.example.com

  3. Wranglerni ishga tushiring: wrangler init β€” site hugo-worker

  4. Wrangler uchun konfiguratsiya yarating (so'ralganda tokenni kiriting): wrangler config

Endi yangi yaratilgan faylga o'zgartirish kiritishga harakat qilaylik wrangler.toml (shu yerda mumkin bo'lgan sozlamalarning to'liq ro'yxati):

  1. Belgilash hisob va zonaid

  2. O'zgartirish yo'nalish kabi bir narsaga *blog.example.com/*

  3. Belgilash yolg'on uchun ishchilardev

  4. Paqirni ./public ga o'zgartiring (yoki statik saytingiz qaerda joylashgan)

  5. Agar yo'lda bir nechta domeningiz bo'lsa, ishchi skriptdagi yo'lni to'g'rilashingiz kerak: ishchilar-sayt/index.js (funktsiyaga qarang handleEvent)

Ajoyib, jamoa yordamida saytni joylashtirish vaqti keldi wrangler publish.

4-qism: Joylashtirishni avtomatlashtirish

Ushbu qo'llanma Gitlab uchun yozilgan, ammo u umuman avtomatlashtirilgan joylashtirishning mohiyati va qulayligini qamrab oladi.

1-qadam: Loyihamizni yarating va sozlang

  1. Yangi GitLab loyihasini yarating va saytni yuklang: katalog blog.example.com barcha mazmuni bilan loyihaning ildiz katalogida joylashgan bo'lishi kerak

  2. Biz o'rnatdik o'zgaruvchan CFAPITOKEN bu yerda: Sozlamalar β†’ CI / CD β†’ Argumentlar

2-qadam: .gitlab-ci.yml faylini yarating va birinchi joylashtirishni ishga tushiring

Fayl yarating .gitlab-ci.yml ildizda quyidagi tarkibga ega:

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 #

Biz birinchi joylashtirishni qo'lda ishga tushiramiz (CI/CD β†’ Quvurlar β†’ Quvurni ishga tushirish) yoki asosiy filialga murojaat qilish orqali. Voila!

xulosa

Xo'sh, men buni biroz pasaytirgandirman va butun jarayon o'n daqiqadan ko'proq vaqtni oldi. Ammo endi sizda avtomatik joylashtirishga ega tezkor sayt va Ishchilar bilan yana nima qilish mumkinligi haqida yangi fikrlar mavjud.

 Cloudflare ishchilari    Hugo    GitLab Ci

Manba: www.habr.com

a Izoh qo'shish