SSR لاراول و Vue روی Cloudflare Workers
خلاصهٔ کاملتر
تیم گایزندورفر تو مقالهای نوشته که راهاندازی معمول SSR تو لاراول و اینرشیا کار میکنه، ولی یه پروسهٔ Node.js همیشهروشن میخواد که باید مراقبش باشی. به گفتهٔ نویسنده، دردسرهای آشنای این مدل عبارتن از نگهداری یه سرویس اضافه، ظرفیتسنجی برای پیک ترافیک، نشتی حافظه تو اپهای بزرگ، و اینکه بعضی پلتفرمهای سرورلس مثل AWS Lambda (زیربنای Laravel Vapor) اصلاً SSR سنتی اینرشیا رو پشتیبانی نمیکنن.
ایدهٔ اصلی اینه که منطق رندر رو ببری تو یه فایل مشترک — resources/js/ssr-shared.ts — که یه تابع renderPage صادر میکنه. بعد هم نقطهٔ ورود سنتی Node و هم یه Worker کلادفلر همون تابع رو صدا میزنن. کامپوننتهای Vue و کنترلرهای لاراول دستنخورده میمونن؛ فقط جایی که رندر اتفاق میافته عوض میشه.
ورودی Worker یه هندلر HTTP سادهست که درخواست رو میگیره، همون تابع renderPage (که از باندل بیلدشدهٔ dist/ssr.js ایمپورت میشه) رو صدا میزنه و خروجی رندرشده رو برمیگردونه:
export default {
async fetch(request: Request): Promise<Response> {
const data = JSON.parse(await request.text());
const ssrResult = await renderPage(data.page || data);
return new Response(JSON.stringify(ssrResult));
}
};سمت بیلد، کانفیگ Vite با متغیر WORKER_BUILD=true تشخیص میده که داره برای Worker بیلد میکنه و خروجی رو به dist/ssr.js میفرسته. دیپلوی هم با wrangler انجام میشه. جالبترین بخش ماجرا سوئیچ بین دو حالته: فقط کافیه INERTIA_SSR_URL رو تو فایل .env عوض کنی، چون لاراول صرفاً یه درخواست HTTP میفرسته و کاری نداره اونطرف کی جواب میده.
نویسنده صراحتاً میگه این یه نمونهٔ اولیه و مطالعهٔ موردیه و برای کاربرد حساس بهاندازهٔ کافی تست نشده. با این حال به گفتهٔ اون مزیتهاش تو بعضی سناریوها روشنه: سازگاری با Laravel Vapor، کمشدن دردسر نشتی حافظه بهخاطر محدودیت و پاکسازی خودکار حافظه تو Workers، مقیاسپذیری خودکار بدون ظرفیتسنجی، و پرداخت بهازای هر درخواست بهجای نگهداشتن سرور روشن.
نکات کلیدی:
- منطق SSR تو یه فایل مشترک جمع میشه تا هم Node و هم Worker ازش استفاده کنن
- کامپوننتهای Vue و کد لاراول هیچ تغییری نمیخوان
- سوئیچ بین SSR سنتی و Workers فقط با عوضکردن INERTIA_SSR_URL انجام میشه
- برای کاربرهای Laravel Vapor که رو AWS Lambda هستن، این تنها راه رسیدن به SSR ـه
- نویسنده تأکید میکنه این راهحل هنوز آزمایشیه و برای پروداکشن باید حسابی تستش کنی




