عنوان:

‫میزبانی رایگان یک وب‌سایت، فقط با یک دامنه و قدرت Cloudflare Workers!


نویسنده: وحید نصیری
تاریخ: ۱۴۰۴/۰۵/۲۵ ۰۸:۱۰
آدرس: www.dntips.ir
Cloudflare Workers یک پلتفرم serverless است که به شما اجازه می‌دهد کدهای جاوااسکریپتی را روی شبکه جهانی Cloudflare اجرا کنید، بدون نیاز به سرورهای سنتی مانند VPS. تصور کنید کدهای وب‌سایت شما (جاوا اسکریپت) به جای اینکه روی یک سرور مشخص در یک کشور خاص باشند، روی شبکه جهانی و عظیم Cloudflare پخش شده‌اند. این یعنی کد شما از نزدیک‌ترین نقطه‌ی جغرافیایی به کاربر اجرا می‌شود. نتیجه؟ سرعت فوق‌العاده بالا و هزینه بسیار پایین! به این تکنولوژی می‌گویند "Serverless" یا "بدون سرور".

مزایای اصلی Cloudflare Workers:
  • سرعت باورنکردنی: کد از نزدیک‌ترین سرور به بازدیدکننده اجرا می‌شود.
  • هزینه کم: شما فقط به اندازه‌ی استفاده‌تان پول می‌دهید. طرح رایگان آن برای شروع عالی است!
  • مقیاس‌پذیری خودکار: نگران ترافیک زیاد نباشید، Worker به صورت خودکار برای میلیون‌ها کاربر پاسخگو خواهد بود.
  • امنیت بالا: از تمام ویژگی‌های امنیتی Cloudflare بهره‌مند می‌شوید.


هدف: اتصال مستقیم دامنه به Worker

سؤال اصلی اینجاست: چطور دامنه‌‌ای را که از پیش تهیه کرده‌ایم، مانند www.my-awesome-site.com ، مستقیماً به Worker خودمان وصل کنیم بدون اینکه به یک سرور یا VPS واسطه نیاز داشته باشیم؟
خبر خوب این است که Cloudflare این کار را به شدت ساده کرده است! ما از قابلیتی به نام Custom Domains در تنظیمات خود Worker استفاده می‌کنیم که مستقیماً Worker را به دامنه شما متصل می‌کند. این ویژگی، DNS و گواهی‌های SSL را به طور خودکار مدیریت می‌کند.


گام به گام تا راه‌اندازی سایت
بیایید با هم این مسیر را قدم به قدم طی کنیم.

گام اول: آماده‌سازی دامنه در Cloudflare

قبل از هر کاری، باید دامنه‌ی شما روی Cloudflare فعال باشد.
  • در Cloudflare ثبت‌نام کنید.
  • دامنه‌ی خود را به اکانتتان اضافه کنید (Add a Site).
  • Cloudflare به شما دو یا چند Nameserver می‌دهد. شما باید وارد پنل ثبت‌کننده‌ی دامنه‌ی خود (جایی که دامنه را خریده‌اید) شوید و Nameserver های آن را به Nameserver های Cloudflare تغییر دهید. با این کار، مدیریت تمام ترافیک و DNS دامنه را به دست Cloudflare می‌سپاریم تا بتواند درخواست‌ها را به سمت Worker هدایت کند.

گام دوم: ساختن اولین Worker

  • از منوی سمت چپ داشبورد Cloudflare، به بخش Workers & Pages بروید.
  • روی Create application کلیک کرده و سپس تب Workers را انتخاب و Create Worker را بزنید.
  • Cloudflare یک اسم تصادفی به Worker شما می‌دهد (مثلاً icy-brook-1234). می‌توانید آن را تغییر دهید.
  • یک کد نمونه جاوا اسکریپت به شما نمایش داده می‌شود که به هر درخواستی با "Hello World!" پاسخ می‌دهد. فعلاً همین کافی است!
  • روی Deploy کلیک کنید. تبریک! اولین Worker شما ساخته شد و در آدرس your-worker-name.your-subdomain.workers.dev فعال است؛ البته ما می‌خواهیم آن را به دامنه خودمان متصل کنیم..

درک Cloudflare Workers
Cloudflare Workers مانند یک “کارگر هوشمند” عمل می‌کند که درخواست‌های وب را مدیریت می‌کند. مثلاً می‌توانید یک صفحه HTML ساده بسازید یا حتی APIهای پیچیده.
مثال ساده: تصور کنید می‌خواهید یک سایت استاتیک با محتوای “سلام دنیا!” بسازید. Worker می‌تواند این کار را بدون سرور انجام دهد.

گام سوم: تنظیم Custom Domain (کلید اصلی بدون VPS)
Custom Domains اجازه می‌دهد Worker مستقیماً به دامنه شما (مثل example.com) متصل شود، بدون نیاز به VPS یا سرور دیگری. Cloudflare مباحثی مانند DNS و گواهی‌ها را به صورت خودکار مدیریت می‌کند.

مراحل گام‌به‌گام انجام اینکار (از داشبورد):
۱. در داشبورد، به Workers & Pages > Overview > Worker خود بروید.
۲. به Settings > Domains & Routes > Add > Custom Domain بروید.
۳. دامنه یا ساب‌دامنه مورد نظر را وارد کنید (مثل site.example.com).
۴. Add Custom Domain را بزنید. Cloudflare یک رکورد DNS جدید ایجاد می‌کند و گواهی SSL صادر می‌کند.


نکته: اگر از Wrangler (ابزار CLI Cloudflare) استفاده می‌کنید، در فایل wrangler.toml بنویسید:
routes = [
  { pattern = "site.example.com", custom_domain = true }
]
سپس wrangler deploy بزنید.

پس از اضافه کردن، درخواست‌ها به دامنه مستقیماً به Worker هدایت می‌شوند. بدون VPS، چون Worker روی شبکه Cloudflare اجرا می‌شود!

نکته‌ی مهم: اگر دامنه‌ی شما قبلاً تنظیمات DNS خاصی داشته، مانند CNAME، آن‌ها را حذف کنید؛ چون قرار است Cloudflare مدیریت آن‌را عهده‌دار شود.

سؤال: در این حالت چه اتفاقی در پشت صحنه می‌افتد؟ 🧐
وقتی شما این کار را می‌کنید، Cloudflare به صورت خودکار یک رکورد DNS لازم را برای شما ایجاد می‌کند! این رکورد از نوع CNAME یا AAAA (برای IPv6) است که دامنه شما را مستقیماً به سرویس Workers اشاره می‌دهد. دیگر نیازی به تنظیمات دستی DNS و پیدا کردن IP سرور نیست!

سؤال: به نظر شما تفاوت این روش با روش سنتی (که در آن یک رکورد A به IP یک سرور اشاره می‌کند) چیست؟ کدام یک انعطاف‌پذیرتر است؟
راهنمایی: در این روش، ما به یک "آدرس" ثابت (IP) وابسته نیستیم، بلکه به یک "سرویس" (Workers) متصل می‌شویم. اگر زیرساخت Workers تغییر کند، سایت ما همچنان بدون مشکل کار خواهد کرد.


گام چهارم: تست نهایی

چند دقیقه صبر کنید تا تنظیمات DNS در سراسر جهان منتشر شود. سپس آدرس دامنه‌ی خود (www.my-awesome-site.com یا هر آدرس دیگری را که تنظیم کرده‌اید) را در مرورگر باز کنید. نتیجه چه باید باشد؟ شما باید پیام "Hello World!" را که توسط Worker شما ارسال شده، ببینید!


نکات تکمیلی: مدیریت Routing و محدودیت‌ها
- Routing: تمام مسیرها (paths) روی دامنه به همان Worker می‌روند. مثلاً site.example.com/login و site.example.com/home، هر دو، Worker را فراخوانی می‌کنند. برای مسیریابی‌های پیچیده، از کد Worker استفاده کنید.
- محدودیت‌ها: از wildcard پشتیبانی نمی‌شود (مثل *.example.com) و فقط دامنه‌های دقیق کار می‌کنند.
- اگر Workerهای دیگری روی همان zone دارید، برای ارتباط بین آن‌ها از fetch استفاده کنید (بدون نیاز به bindings اگر Custom Domain باشد).

سؤال: اگر بخواهید فقط مسیر خاصی (مثل /api/) را به Worker هدایت کنید، چکار باید کرد؟
پاسخ: از Routes معمولی استفاده کنید، نه Custom Domains.

نتیجه‌گیری
با Cloudflare Workers و ویژگی Custom Domains آن، می‌توانید سایت‌ها را سریع و ارزان میزبانی کنید؛ بدون دردسر نیاز به داشتن VPS. این ابزار برای توسعه‌دهندگان مدرن عالی است!