تولیدکنندگان سایت های استاتیک (SSG) طی دهه گذشته محبوبیت بیشتری پیدا کرده اند. در این مقاله چگونگی بهره مندی سایت شما از فرایندهای سازگار با توسعه دهندگان ، استقرار آسان تر ، عملکرد بهتر و امنیت بهتر ارائه شده توسط یک سایت ثابت مورد بحث قرار می گیرد.
اول ، بیایید منظور خود را از اصطلاح “تولید کننده سایت ثابت” مشخص کنیم …
سایت استاتیک چیست؟
به اولین وب سایتی که ایجاد کردید فکر کنید. بیشتر توسعه دهندگان با ایجاد یک سری از صفحات موجود در پرونده های HTML جداگانه شروع می کنند. هر یک از اینها دارایی هایی مانند تصاویر ، CSS و شاید یک جاوا اسکریپت را فراخوانی می کند. شما ممکن است این فایل ها را مستقیماً از سیستم فایل بدون وب سرور راه اندازی کنید. زندگی ساده بود.
با بزرگتر شدن و پیچیدگی سایت ، مشکلات به وجود می آید. پیمایش را در نظر بگیرید: ممکن است در هر پرونده ای مشابه باشد ، اما افزودن صفحه جدید نیاز به به روزرسانی پرونده های دیگر دارد. حتی مراجعه به CSS و تصاویر نیز می توانند با تکامل ساختار پوشه ها ناخوشایند شوند. ممکن است گزینه هایی مانند سرور یا PHP را در نظر گرفته باشید ، اما گزینه ساده تر می تواند سیستم مدیریت محتوا (CMS) باشد …
سیستم مدیریت محتوا چیست؟
CMS معمولاً پنل های کنترل اداری را فراهم می کند. این موارد به نویسندگان امکان می دهد محتوایی را که در یک پایگاه داده back-end ذخیره شده است بنویسند. وقتی بازدید کننده درخواست URL می کند ، CMS:
- مشخص می کند که کدام صفحه مورد نیاز است
- محتوای مناسب را از پایگاه داده درخواست می کند
- الگوی HTML را بارگیری می کند (به طور معمول از سیستم فایل)
- محتوا را در قالب ارائه می دهد ، و
- یک صفحه HTML قالب بندی شده را به مرورگر بازدید کننده باز می گرداند.
این اتفاق تقریباً بلافاصله رخ می دهد. این الگو می تواند با توجه به سلسله مراتب ناوبری ، کدی برای تولید منوها داشته باشد. زندگی شیرین است و از هر ده نفر بیش از چهار نفر PHP / MySQL منبع باز را انتخاب می کنند وردپرس CMS برای مدیریت وب سایت خود.
متأسفانه ، CMS مجموعه متفاوتی از مسائل را مطرح می کند:
- شما باید به روش کار CMS پایبند باشید. اضافه کردن متن یا م customلفه های سفارشی ممکن است ناخوشایند باشد.
- سرور بیشتر کار می کند و عملکرد می تواند تحت تأثیر قرار گیرد.
- نقاط خرابی دیگری نیز وجود دارد. ارتقا software نرم افزار یا خرابی پایگاه داده می تواند سایت شما را از بین ببرد.
ایجاد کننده سایت استاتیک چیست؟
SSG یک سازش بین استفاده از یک سایت استاتیک کدگذاری شده با دست و یک CMS کامل است ، در حالی که مزایای هر دو را حفظ می کند. در واقع ، شما با استفاده از مفاهیم CMS مانند الگوها ، یک وب سایت ثابت مبتنی بر صفحه HTML ایجاد می کنید. محتوا را می توان از یک پایگاه داده ، پرونده های Markdown ، یک API یا هر مکان ذخیره سازی عملی استخراج کرد.
هنگامی که تغییرات به مخزن کد منتقل می شوند ، تولید سایت می تواند در دستگاه توسعه ، سرور مرحله بندی یا استفاده از یک سرویس برای ایجاد شما ایجاد شود. سپس پرونده های HTML و دارایی های دیگر در یک وب سرور مستقر می شوند.
اصطلاح “ثابت” به معنای “تغییر ناپذیر” نیست. SSG یک بار صفحه را می سازد در حالی که CMS آن را بر اساس هر درخواست می سازد. نتیجه نهایی یکسان است و کاربران هرگز تفاوت را نمی دانند.
مفهوم مرتبط CMS “بدون سر” یا “جدا شده” است. اینها از رابطی مانند وردپرس برای مدیریت محتوا استفاده می کنند اما به سایر سیستمها امکان دسترسی به داده ها از طریق a را می دهند REST API، یا GraphQL API. بنابراین ، SSG مانند Eleventy می تواند با استفاده از محتوای صفحه وردپرس استخراج شده از یک سرور داخلی ، یک وب سایت ثابت ایجاد کند. فایلهای HTML حاصل می توانند در یک وب سرور بارگذاری شوند ، اما نصب وردپرس هرگز نباید از خارج از سازمان در دسترس عموم باشد.
عبارت جام جم (JavaScript ، API ها و Markup) نیز در رابطه با سایت های ثابت استفاده می شود. این به افزایش چارچوب ها ، توابع بدون سرور و ابزارهای مرتبط اشاره دارد که فایل های استاتیک را ایجاد می کنند اما اجازه می دهند تعامل پیچیده تری ایجاد شود.
ژنراتورهای معروف سایت استاتیک شامل جکیل، یازده، گتسبی، هوگو، و فلزکار. SSG برای اکثر زبانها در دسترس است (نگاه کنید به: StaticGen برای بسیاری دیگر) چارچوب هایی مانند Next.js صفحات را به صورت آماری در صورت امکان رندر می کند ، اما همچنین در صورت لزوم به توسعه دهنده اجازه می دهد تا کد سمت سرور را اجرا کند.
بیایید مزایای استفاده از SSG را بررسی کنیم
1. انعطاف پذیری
CMS به طور معمول گزینه های شما را محدود می کند ، زیرا آنها به یک پایگاه داده با زمینه های خاص گره خورده اند. اگر می خواهید یک ابزارک Twitter به برخی از صفحات اضافه کنید ، به طور معمول به یک پلاگین ، کد کوتاه یا برخی از قابلیت های سفارشی نیاز خواهید داشت.
در یک سایت ثابت ، ویجت را می توان به راحتی مستقیماً یا با استفاده از جزئی / قطعه در پرونده وارد کرد. محدودیت های محدودی وجود دارد ، زیرا شما تحت محدودیت های اعمال شده توسط CMS قرار نگرفته اید.
2. عملکرد بهتر
اکثر برنامه های CMS سیستم های حافظه داخلی یا پلاگین را برای اطمینان از تولید و استفاده مجدد صفحات در صورت امکان ارائه می دهند. این موثر است ، اگرچه سربار مدیریت ، اعتبارسنجی و تولید مجدد صفحات حافظه پنهان باقی مانده است.
سایت های استاتیک می توانند صفحاتی را که از قبل ذخیره شده اند ایجاد کنند که هرگز منقضی نمی شوند. همچنین می توان فایل ها را قبل از استقرار کوچک کرد تا کمترین بار را تضمین کند و به راحتی از طریق شبکه های تحویل محتوای جهانی (CDN) مستقر شود. یک سایت ثابت همیشه با استفاده از الگویی مشابه عملکرد بهتری نسبت به نسخه CMS دارد.
3. کمتر وابستگی سمت سرور
نصب معمول وردپرس نیاز به موارد زیر دارد:
- یک سیستم عامل مناسب مانند اوبونتو یا CentOS
- یک وب سرور مانند Apache یا NGINX
- PHP با افزونه های مرتبط و پیکربندی های سرور وب
- MySQL
- برنامه وردپرس
- پلاگین های لازم
- کد موضوع / الگو.
این وابستگی ها باید نصب و مدیریت شوند. وردپرس نسبت به برخی از برنامه های دیگر به تلاش کمتری نیاز دارد ، اما هنوز هم ممکن است یک بروزرسانی باعث هرج و مرج شود.
یک تولید کننده سایت استاتیک ممکن است به همان تعداد وابستگی احتیاج داشته باشد ، اما می تواند بر روی کامپیوتر توسعه دهنده اجرا شود و در یک سرور تولید مستقر نشود. SSG پرونده های HTML و دارایی های مرتبط با آن را ایجاد می کند که می توانند در هر سرور وب میزبانی شوند. هیچ چیز دیگری برای نصب ، مدیریت یا نگهداری وجود ندارد.
4. قابلیت اطمینان بهبود یافته
CMS پیچیده است ، دارای بسیاری از قطعات متحرک و نقاط خرابی است. برای هر مدت زمانی یک سایت وردپرس را راه اندازی کنید و مطمئناً با افراد مخوف روبرو خواهید شد “اتصال پایگاه داده برقرار نشد” خطا مشکلات پیش بینی نشده CMS می تواند ناشی از افزایش ناگهانی ترافیک باشد که سرور را بیش از حد بار می کند ، پایگاه داده را خراب می کند یا اتصالات فعال را محدود می کند.
سرویس دهی به سایت ثابت از شدت کمتری برخوردار است. در بسیاری از موارد ، سرور فقط باید پرونده های مسطح را بازگرداند تا مقیاس گذاری با توجه به تقاضای ترافیک ساده شود. خراب کردن یک سرور وب یا اضافه بار کردن API ها هنوز هم امکان پذیر است ، اما به طور همزمان درخواست های همزمان بیشتری را می گیرد.
5. امنیت برتر
دلایل مختلفی وجود دارد که شخص ممکن است بخواهد به وب سایت شما حمله کند. هواپیماربایی در ترافیک ، تبلیغات سخیف ، پیوند دادن ، جعل اصالت و بدافزارهایی که میزبان همه آنها است ، به یک کاربر غیر مجاز اجازه می دهد تا سودهای پولی و / یا حقوقی کسب کند.
CMS تعدادی از بردارهای حمله را باز می کند. بارزترین صفحه ورود به سیستم است: فقط به اندازه ضعیف ترین رمز عبور کاربر ایمن است. توجه داشته باشید که هر صفحه دارای کد سمت سرور نیز بهره های بالقوه ای را ارائه می دهد – مانند شلیک ایمیل های هرزنامه از طریق فرم تماس با شما. ممکن است بدست آوردن کسی دسترسی نداشته باشد. بدترین مجرمان می خواهند پنهان بمانند.
یک سایت ساکن ممکن است به کارایی سمت سرور کم یا بدون نیاز باشد. برخی از خطرات همچنان باقی مانده اند ، اما به ندرت مشکل ساز نیستند:
- شخصی می تواند از طریق SSH یا FTP به سرور دسترسی پیدا کند و صفحات را تغییر دهد یا پرونده ها را بارگذاری کند. با این وجود ، معمولاً بررسی تغییرات (شاید با استفاده از) ساده است
git status
) ، کل سایت را پاک کنید و دوباره آن را بازسازی کنید. - API های فراخوانی شده توسط یک سایت ثابت در مرورگر در معرض دید قرار گرفته و می توانند به روشی مشابه با هر کد سمت سرور – مانند ایمیل ارسال فرم – مورد سو استفاده قرار گیرند. اقدامات امنیتی خوب ، CORS، و CSP کمک خواهد کرد.
6. ملاحظات کنترل مشتری
شما می توانید هفته ها به ساختن یک تم جذاب CMS برای مشتری بپردازید تا سایت خود را ظرف چند دقیقه پس از تحویل از بین ببرد. استفاده از CMS لزوما آسان نیست و قدرت قابل توجهی به ویراستاران محتوا می دهد. می توانید حقوقی مانند نصب افزونه را قفل کنید ، اما از تغییر قلم ، معرفی رنگهای متناقض ، افزودن عکاسی ضعیف یا خراب کردن طرح جلوگیری نمی کند.
یک سایت ثابت می تواند به اندازه انتخاب شما محدود یا انعطاف پذیر باشد. اگر از Markdown یا پرونده های مسطح مشابه استفاده می کنید ، سردبیران کمتر قادر به اشتباه هستند یا بر سبک سازی صفحه تأثیر منفی می گذارند. برخی از آنها پانل های مدیریت محتوای CMS را از دست می دهند ، اما شما می توانید:
- از CMS موجود خود استفاده کنید و داده ها را قبل از تولید پاک کنید ، یا
- گردش کار ساده تری مانند ویرایش فایلهای مبتنی بر Git در StackEdit یا Hackmd.io.
7. کنترل نسخه و تست
داده های پایگاه داده بی ثبات هستند. CMS به کاربران اجازه می دهد تا محتوای خود را اضافه کنند ، حذف یا تغییر دهند. پاک کردن کل سایت با چند کلیک فاصله است. می توانید از پایگاه داده پشتیبان تهیه کنید اما ، حتی اگر این کار به طور منظم انجام شود ، باز هم احتمال از دست دادن برخی از داده ها وجود دارد.
یک سایت ثابت به طور کلی امن تر است. محتوا را می توان در:
- پرونده های تخت: سپس می توان آنها را با استفاده از نسخه کنترل کرد گیت یا سیستم های مشابه محتوای قدیمی حفظ می شود و تغییرات به سرعت قابل لغو هستند.
- پایگاه داده های خصوصی: داده ها فقط در مواقعی که سایت تولید می شود لازم است بنابراین نیازی به نمایش در سرور عمومی نیست.
همچنین آزمایش آسان تر می شود زیرا سایت می تواند در هر کجا – حتی در رایانه شخصی مشتری – تولید و پیش نمایش شود.
با کمی تلاش بیشتر ، می توانید سیستم های استقرار را برای ساختن سایت از راه دور و به روزرسانی سرور مستقیم وقتی محتوای جدید به مخزن منتقل شده ، بررسی و تأیید شده است ، پیاده سازی کنید.
بنابراین همه چیز در دنیای سایت استاتیک خوب است. یا آن؟ پست پیگیری من را در 7 دلیل استفاده نکردن از سایت ایجاد کننده سایت بخوانید.
برای نمایش عملی سایتهای ساختمانی با یک سایت سازنده سایت استاتیک ، به موارد زیر مراجعه کنید: