آموزش دروپال ؛ 19 تکنیک برای افزایش کارایی و سرعت در دروپال

مقاله ای که در ادامه مطالعه خواهید کرد چکیده ایی است از مجموعه مقالات انواع سایت های فارسی و انگلیسی زبان پیرامون تکنیک های افزایش سرعت دروپال، که در وبلاگ های خود منتشر کرده اند و مروری داشته اند بر بهترین روش های بهینه سازی برای سرعت بیشتر دروپال ، در این مقاله سعی کردم تمام تکنیک هایی که تا به امروز بزرگانی نظیر آقایان حجازی ، سروری ، بناکار و... بیان داشته اند را یکجا جمع کنم.

1-کاهش DNS ها

این نکته البته برای هر سیستم مدیریت محتوایی کاربرد دارد اما به هر حال باید بدانید که DNS یا همان نام دامنه ها بر روی هاست شما هر کدام بین ۲۰ تا ۱۲۰ میلی ثانیه زمان برای بازخوانی از هاست نیاز دارند برای اینکار شما میتوانید از آدرس دهی بجای ساخت زیردامنه استفاده کنید بطور مثال از Websima.com/blog بجای blog.websima.com استفاده کنید.

 

2-افزونه BOOST ، افزونه BOOST ، افزونه BOOST

تقریباً همه حرفه ای ها به این افزونه ارادت دارند!یکی از بزگترین مزایای این افزونه این هست که شما به راحتی می تونید در هاست های اشتراکی از اون استفاده کنید و شاید یکی از نقاط ضعف این افزونه این باشه که استفاده از اون برای کاربرهای تازه کار مشکل باشه و برای راه اندازی نیاز به تنظیماتی هست.
برای boost شما نیاز به Poormanscron (دروپال 7 جزء هسته است ) ،فعال بودن clean urls و دسترسی به فایل .htaccess و robots.txt دارید.
یک نکته مهم در مورد boost این افزونه تنها برای افزایش کارائی برای کاربرهای مهمان هست. اگر شما سایتی دارید که تعداد زیادی کاربر عضو دارد ، ممکنه راه حل بعدی برای شما بهتر باشه.

 

3-Reverse Pro-xy و سرویس cloudflare

روش هایی که مبتنی بر کشینگ سورس html صفحات باشند، جزو موثر ترین روش ها هستند زیرا سر بار اجرای دروپال را حذف می کنند.
استفاده از reverse pro-xy ها برای همین منظور می باشد. مشهور ترین reverse pro-xy، سرور وارنیش می باشد (Varnish) و به جای آن همچنین می توانید از nginx و یا از squid هم استفاده کنید.
لیکن توجه کنید که استفاده یک سرور reverse pro-xy همان اندازه که می تواند در صورت تنظیم صحیح موجب افزایش سرعت بارگذاری سایت شما شود، اگر درست تنظیم نشود، مسبب مشکلات متعدد و پیچیده ای می شود. لذا برای استفاده از چنین سیستمی باید مهارت کافی داشته باشید.

 

4-تنظیمات اجرای  Cron در دروپال

دروپالیون در یکی از مقاله های خود می نویسد که اکثر سرویس دهندگان هاست مثل Plesk و Cpanel قسمتی با نام “scheduled tasks” یا “cron jobs” دارند که میتوانید با کمک آنها Cron رو اجرا کنید. اجرای Cron در فواصل زمانی مشخص باعث بروزرسانی فیدهای RSS، اجرای ایندکس کننده موتور جستجو و بسیاری از وظایف دیگری که در ماژول های نصب شده مشخص شده اند میشود. در ضمن بعضی از عمل های نگهداری و بهبود سایت مثل حذف فایل های temporary و پاکسازی log ها نیز با اجرای Cron انجام میشوند.

 

5-استفاده از ماژول authcache

قبل از هر چیز توجه داشته باشید که برای استفاده از این ماژول، باید مسائل متعددی را در سایت تان تغییر دهید و پیاده سازی و تنظیم این ماژول اندکی دشوار و فنی می باشد. ماژول فوق برای کاربرانی که لاگین نیستند، دقیقا مثل boost عمل می کند، اما برای کاربرانی که لاگین هستند، روش دیگری را دارد به این صورت که صفحات استاتیک را لود می کند و سپس یک تقاضای دیگر توسط Ajax به وب سرور ارسال می شود و دروپال را در فاز session بوت استرپ می کند (که خیلی از سریع تر از بوت استرپ کامل است) و در طی این تقاضا، هم دروپال به وظایفش رسیدگی می کند و پایگاه داده را به روز می کند و هم کد های html صفحه به روز رسانی می شود و سفارشی سازی های لازم برای کاربری که در سایت لاگین است در صفحه لود می شود.

 

6-کشینگ دروپال برای ذخیره ی بهتر اطلاعات کش شده

روش هایی موجود است که کشینگ درون ساخت دروپال را بهبود می دهند. به این طریق که اطلاعات کش شده در دروپال را به جای این که در پایگاه داده ی سایت ذخیره کنند، در یک مکان دیگر ذخیره می کنند و به این ترتیب، ترافیک پایگاه داده باز هم کمتر می شود و سرعت سایت بالاتر می رود.
از جمله ی این ماژول ها می توان مواردی نظیر ماژول memcache ، ماژول redis ، ماژول mongodb و ماژول filecache اشاره کرد.

 

7-ماژول enitycache

ماژول enitycache موجب می شود که entity ها در دروپال 7 وارد سیستم کشینگ درونی دروپال شوند و بارگذاری entity ها تسریع شود. این ماژول نیاز به پیکربندی خاصی ندارد.

 

افزایش کارایی دروپال

 

8-مهاجرت به یک دیتابیس سریع تر

Oracale Database همیشه در بین حرفه ای ها محبوبترین بوده اما اگر به تنظیمات این پایگاه داده مسلط  نیستید خیلی تجربه شیرینی برای شما نخواهد بود اما در عین حال پایگاه داده ی SQlite ساده ترین پایگاه داده ی موجود می باشد و اطلاعاتش را در درون یک فایل قابل حمل ذخیره می کند. در هاست های اشتراکی که سرعت دیتابیس MySQL کند است، می توانید از Sqlite به جای MySQL استفاده کنید. در کاربرد های ساده، سرعت دسترسی به پایگاه داده ی SQlite چندین برابر سریع تر از MySQL است.

 

9-Op Code caching و افزایش سرعت کدهای php

به شخصه هیچ کدام از روش های زیر را امتحان نکرده ام ما برخی از روش های معروفی که خیلی ها اشاره کرده اند عبارتند از:
    استفاده از APC
    استفاده از eAccelerator
    استفاده از xcache

10-defragment در سرورهای اختصاصی

 اگر از سرور اختصاصی استفاده می کنید هرچند وقت یکبار هارد سایت را defragment کنید، این روش ساده اما جالبی بود که در دست نوشته های آقای سروری دیدم.

 

11-وارنیش کش را فراموش نکنید!

اگر دارای سایتی هستید که بازدید بسیار بالایی دارد. اگر منایع سخت افزاری سایت شما بسیار مشغول هست و اگر دارای یک سایت دروپالی با بازدید بسیار بالا هستید وارنیش می تونه کمک بسیار بزرگی برای شما باشد.وارنیش از دیگر اپلیکیش های سروری هست که در سایت هایی که طراحی کردم از ان استفاده شده است. وارنیش کش varnish cache یک شتاب دهنده HTTP هست که طراحی شده است برای وب سایت های داینامیک با بازدید بسیار بالا.بعلاوه برای استفاده از وارنیش کش شما باید از افزونه Varnish HTTP Accelerator Integration استفاده کنید ، وارنیش نسبت به آپاچی بسیار سریعتر عمل کرده و اون طوری که توی صفحه افزونه هم نوشته شده حدود 3000 پیچ ویو در ثانیه !

 

12-gzip

اگر این تکنولوژی را در سایت خودتان استفاده کنید هم سرعت سایت شما افزایش پیدا می‌کند و هم از همه مهم‌تر در مصرف پهنای باند سایت صرفه‌جوئی می‌کنید. با استفاده از این تکنولوژی در زمان فراخوانی سایت از سرور، ابتدا اطلاعات سایت در سرور فشرده شده و سپس در رایانه کاربر باز می‌شود. برای این کار کافی ست چند کد ساده را در برنامه PHP خودتان قرار دهید.

 

13-استفاده از MongoDB

مانگودی‌بی به جای اینک همانند پایگاه های داده‌های رابطه‌ای کلاسیک داده‌ها را در جداول ذخیره کند، داده‌های ساختاریافته را در اسنادی با قالبی شبیه به جی‌سون (مانگودی‌بی این قالب را بی‌سون(BSON) می‌نامد) ذخیره‌سازی می کند، و بدین ترتیب یکپارچه‌سازی داده‌ها را در برخی اقسام برنامه‌های کاربردی آسان‌تر و سریع‌تر می کند.

 

14-ماژول mod-rewrite

 استفاده از حالت clean url در برخی موارد باعث پایین امدن لود صفحه می شود. clean url از ماژول mod-rewrite که این خود از ماژول های اپاچی  می باشد.

 

15-استفاده از سرور ابری

سرور ابری اطلاعات اصلی سایت شما مثل استایل ها و اسکریپت ها رو میگیره و هر کس که به سایت شما بیاد این سرور اطلاعات رو از نزدیکترین مرکز به بیننده میده فرض کنید شما در ایران هستید و یه بازدید کننده از چین به سایت شما میاد سرور ابری اطلاعاتی که ذخیره کرده از سرور چین براش ارسال میکنه البته این روش زیاد به دردبخور نیست چون توی چین سرعت هزار برابر ایران هستش و نیازی به سرور ابری نیست
البته می توانید کد های جی کوئری خود را از روی سرور های ابری فراخوانی کنید

 

16-دروپال تکانی کنید!

دست به کار بشید در لیست ماژول های نصب شده خودتون بگردید و تمام ماژول هایی که احیانا برای تست نصب کردید یا دیگه به درد شما نمیخورن رو حذف کنید و یادتون باشه که حتما اونها رو unistall هم بکنید. این کار باعث میشه که جداول بی استفاده در پایگاه داده شما حذف شوند و عملا دروپال تعداد query های کمتری روی پایگاه داده بزنه که نتیجه اون چیزی جز افزایش سرعت و کارایی سایت شما نخواهد بود.

 

افزایش سرعت سایت

 

17-JavaScript ، css ، تصاویر و قالب سایت خود را بهینه کنید.

هرچه حجم صفحات را کاهش دهید، سرعت بارگذاری بیشتر، رنکینگ بهتر و بازدیدگنندگان بیشتری را بدست می آورید. یکی از اصلی ترین دلایل کندی بارگذاری یک سایت ناشی از حجم بالای صفحات آن می باشد. حجازی می گوید استفاده از پوسته ای که کدهای html کمی داشته باشد، ایده ی خوبی است. همچنین عدم استفاده از ماژول هایی مثل dhtml_menu یا admin_menu می تواند کد های html صفحات را کاهش دهد. البته همواره به خاطر داشته باشید که سهم html در کند شدن سایت سهم کمی است و اکثر کندی سایت ناشی از تصاویر/فونت های سفارشی/css و js می باشد.
    فعال کردن css & js aggregation در هسته ی دروپال موجب می شود که حجم فایل های دانلود شده از سایت کم شود.
    نکته: هرچه تعداد http request هایی که برای دانلود یک صفحه از سایت لازم است، کمتر باشد، سرعت بارگذاری سایت بیشتر می شود. به همین خاطر، حتی اگر فایل های جاوا اسکریپت فشرده هم نشوند، هرچه تعدادشان کمتر باشد، بهتر است.
    استفاده از cdn برای بارگذاری فایل های سایت: اگر بتوانید cdn مانند amazon s3 خریداری کنید، سرعت دانلود شدن فایل های شما بسیار افزایش پیدا می کند.
    نکته: روش دیگر این است که فایل هایتان را بر روی Github قرار دهید! البته این روش ممکن است منع قانونی داشته باشد یا ...
    از ماژول jquery_update استفاده کنید. ماژول فوق کمک می کند که سورس jquery سایت به جای این که از روی سرور شما دانلود شود، از روی گوگل/مایکروسافت/جی کوئری دانلود شود. (به انتخاب شما)
    از آن جایی که اکثر طراحان وب jquery را از روی cdn های فوق لود می کنند، بنا بر این شانس این که بازدید کننده ی سایت شما، قبلا از یک سایت دیگر که jquery را از cdn دانلود می کند بازدید کرده باشد، زیاد می باشد. و در این صورت jquery بر روی سیستم وی cache شده و اصلا نیازی به دانلود jquery هنگام بازدید از سایت شما نخواهد داشت!
    ماژول css_emimage کلیه ی تصاویر پیش زمینه ای که در فایل های css تان استفاده کرده اید را در داخل یک فایل css جداگانه به صورت base64 ذخیره می کند و تصاویر پیش زمینه را حذف می کن و به جای آن ها فایل css مربوطه را دانلود می کند.
    ممکن است که شما در یک فایل css حدود 20 تا تصویر پیش زمینه استفاده کرده باشید که دانلود آن ها خیلی طول می کشد. اما با استفاده از ماژول css_emimage کلیه ی این تصاویر را با یک فایل css جایگزین می کند. و تعداد request های لازم برای لود شدن یک صفحه از سایت شما را به طور چشمگیری کاهش می دهد.
    فایل های css و js ای که در هسته ی دروپال موجود می باشند، فشرده نیستند. ماژول speedy فایل های غیر بهینه ی موجود در هسته ی دروپال را با یک نسخه ی بهینه شده جایگزین می کند.
    ماژول labjs کمک می کند که فایل های javascript سایت شما به صورت موازی دانلود شوند. البته این ماژول اگر درست استفاده نشود، ممکن است مشکلاتی را در سایت بوجود بیاورد. البته روش های دیگری هم آقای حجازی در اینجا عنوان کرده اند که مطالعه آن خالی از لطف نیست.

 

18-Database Logging را هم اکنون غیر فعال کنید!

اگر شما مدیر سیستم هستید گزارشاتی که به وسیله این ماژول بدست می آورید خیلی برای شما مفید نخواهد بود. ضمن اینکه ذخیره این اطلاعات در پایگاه داده باعث افزایش حجم پایگاه داده خواهد شد که برای کارایی سایت شما خوب نیست. راه جایگزین استفاده از ماژول Syslog هست که آن هم در Core دروپال قرار دارد و با ذخیره log ها در فایل های استاندارد ذخیره Log، به تمام آنچه شما به آن نیاز دارید پاسخ میدهد.

 

+19! و تجربه شما...!

من سعی کردم آنچه همه خوبان دارند! یکجا در این مقاله ارائه کنم، حال شما هم اگر تجربه جدیدی دارید در قسمت نظرات تجربه و راهکار خود را با دیگران به اشتراک بگذارید.

تصویر محمد حسن شهبازی
محمد حسن شهبازی (تایید نشده)
س., 05/13/2014 - 19:39

سلام و خسته نباشید
اگه میشه زیر پست هاتون بنویسید که نویسنده کی باشه!
قبلا هم تو سایتتون بخش اعضا داشتید که خوب بود. گاهی دلمون میخواست با اونایی که میشناسیم ارتباط برقرار کنیم ولی الان نمی تونیم ! :| :(


حتما این قسمت رو دوباره فعال خواهیم کرد.

ممنون از شما دوست عزیز


تصویر ویدا
ویدا (تایید نشده)
د., 07/13/2015 - 10:38

سلام.
برای شروع کار با cms drupal نیاز به داشتن جه مهارت هایی هست؟
ممنون میشم راهنمایی بفرمایید.


مرکز دروپال ايران

راه های ارتباط با ما

آدرس : دفتر شهریار : شهرک وائین ، بعثت 5 نبش سپیدار 10 پلاک 26

تلفن : 09370977406 - 09384363798

ایمیل : drupalcenter.ir@gmail.com

ارتباط با مدیر سایت از طریق تلگرام

logo-samandehi

مرکز دروپال ایران بزرگترین وب سایت  آموزش دروپال در کشور ، در مهر ماه سال 1388 به طور رسمی فعالیت خود را در زمینه وب و دنیای دیجیتال آغاز کرده است. مجموعه مرکز دروپال ایران شامل « آموزش های تصویری » ، « معرفی جدیدترین ماژول ها » ، « ترجمه مقالات دروپالی روز دنیا » ، « طراحی قالب دروپال» و « خبرهای دنیای دروپال» می باشد.این مجموعه به همراه گروه فنی خود و به  پشتوانه کاربران فعال و متعهد ، با  در نظر داشتن چشم اندازی برای آینده نزدیک ، قصد دارد تا به معرفی و آموزش  هرچه بیشتر و بهتر هسته قدرتمند و دوست داشتنی دروپال ،  به روش های مختلف در زمینه های گوناگون بپردازد تا در کنار کاربران خود به موفقیت های هرروز خود بیفزاید. در همین راستا قصد داریم تا بصورت تخصصی و حرفه ای مباحث مختلف دروپال را با کوچک ترین جزئیات و تکنیک ها به دروپال کاران و کسانی که قصد دارند طراحی وب سایت ،پورتال و سیستم های هوشمند را آغاز کنند ، آموزش دهیم.گستردگی مطالب ، تنوع در آموزش ها ، نگاه تخصصی و همگام بودن با کاربران در آموزش عوامل متمایز کردن مرکز دروپال ایران با سایر آموزش دهندگان می باشد.
دروپال برای انجام طراحی های شگفت انگیز !  Drupal Builds something amazing