آموزش دایرکت ادمین، سی پنل، وب سایت پنل

خانه / وب سرور

وب سرور

سیستم Cache چیست و چه مزایایی دارد؟

سیستم Cache  چیست و چه مزایایی دارد؟

کش یک لایه ذخیره سازی داده با سرعت بالا است که مجموعه ای از داده ها را ذخیره می کند، با این هدف که پاسخ گویی به درخواست ها با سرعت بیشتری انجام شود. به طور کلی داده ها در کش، در سخت افزار با دسترسی سریع مانند RAM (حافظه با دسترسی تصادفی) ذخیره می شود تا امکان استفاده از داده های کش شده با سرعت بالا فراهم باشد. هدف اولیه Cache افزایش بازده داده ها با کاهش نیاز به دسترسی به لایه ذخیره سازی با سرعت پایین تر(مانند Hard Disk (است.

Cache  ها در لایه های مختلفی مانند  سیستم عامل ها، لایه های شبکه از جمله NetNews ، تحویل محتوا (CDN) و DNS، برنامه های کاربردی وب و پایگاه های داده استفاده می شود.

مزایای استفاده از سیستم Cache

با توجه به میزان نرخ درخواست بالا و یا IOPS (عملیات ورودی / خروجی در هر ثانیه) عملکرد زمان ذخیره و بازیابی اطلاعات در RAM  به مراتب بیشتر از وب سرور ها و پایگاه داده های سنتی و سخت افزار مبتنی بر Disk  می باشد. شما می توانید با استفاده از cache  به طور قابل توجهی شاهد کاهش تاخیر و بهبود IOPS برای بسیاری از درخواست های برنامه کاربردی باشید. اطلاعاتcache  شده میتواند شامل نتایج پرس و جو پایگاه داده، محاسبات فشرده محاسباتی، درخواستهای API / پاسخها و المانهای وب مانند HTML، js، css و فایلهای تصویری باشد.

بهبود عملکرد برنامه

از آنجایی که حافظه RAM  سریع تر از DISK (مغناطیسی یا SSD) است، اطلاعات خواندن از حافظه Cache بسیار سریع (کمتر از یک میلی ثانیه) می باشد. این دسترسی سریعتر به داده ها به طور قابل توجهی عملکرد کلی برنامه را بهبود می بخشد.

کاهش پردازش پایگاه داده

Cache می تواند صدها هزار IOPS را فراهم کند، به صورت کلی بجای هر بار اجرای دیتابیس برای هر درخواست یکسان، با کش شدن تنها یک درخواست پردازش دیتابیس نیاز است، به این ترتیب کش هزینه را کاهش می دهد. این موضوع از آن جهت دارای اهمیت است که برای هر درخواست مشابه نیازی به اجرای کوئری های مشابه در دیتابیس وجود ندارد.

کاهش بار در Backend

با هدایت قسمت قابل توجهی از ترافیک بالای تکرار شده  از وب سرورها و  پایگاه داده به لایه حافظه RAM،  پردازش بار در وب سرور و  پایگاه داده  کاهش میابد، و درخواست های کمتری به سمت سرورهای Backend  در زیرساخت ارسال میشود.

عملکرد قابل پیش بینی

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

تفاوت Cache  با CDN  چیست؟

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

CDN صرفا تحویل محتوا را از طریق تکرار فایل های معمول درخواست شده (محتوای استاتیک) در یک مجموعه جهانی توزیع شده از سرورهای ذخیره سازی، بهبود می بخشد و پاسخ به کاربر از نزدیک ترین سرویس CDN  داده خواهد شد.

آیا به سرویس CDN  در داخل کشور نیاز است؟

با توجه به اینکه اکثر درخواست ها به سرور و سایت های کاربران ایرانی فارسی زبان، تنها از داخل کشور انجام میشود و ایران از نظر جغرافیایی مساحت زیادی ندارد که دریافت اطلاعات را با تاخیر مواجه کند، عملا پیاده سازی و استفاده از CDN  در داخل کشور تفاوت چندانی در سرعت پاسخ گویی ایجاد نمیکند. اما ذخیره سازی اطلاعات در مراکز تبادل ترافیک IXP  میتواند قابلیت دسترسی و اطمینان را افزایش دهد. در صورت بروز اختلال در یک مرکز سایر مراکز به فعالیت‌های خود ادامه می‌دهند و علاوه بر این در صورت قطع ارتباطات بین‌ المللی مشکلی در ارتباطات داخلی ایجاد نخواهد شد.

مراکز تبادل ترافیک اینترنتی، زیرساخت‌های فیزیکی هستند که از طریق آن‌ها ارایه دهندگان خدمات اینترنتی یا ISP ها می‌توانند به راحتی ترافیک اینترنت را میان شبکه‌های خود مبادله کنند.

 

چرا باید از Cache  استفاده کنیم؟

  • افزایش سرعت بارگذاری محتوای سایت
  • عدم نیاز به افزایش سخت افزار و منابع در زمان بازدید و ترافیک بالا
  • کاهش هزینه سرویس و جلوگیری از خسارت در زمان هایی که ترافیک بالای پیش بینی نشده وجود دارد
  • پایداری سایت در زمان حملات سیل آسا DOS
  • آپتایم بالا سایت حتی در زمان بروز مشکل و قطعی درBackend (اطلاعات تا زمان رفع مشکل Backend از cache سیستم   فراخوانی میشود)

نصب Laravel در centos

How To Install Laravel  Framework on CentOS

پیش نیازهای نصب لاراول:

نسخه PHP:

۵٫۶ و بالاتر

ماژول های PHP:

OpenSSL , PDO , Mbstring , Tokenizer

ترجیا سعی کنید روی سرورهای خارج از ایران نصب نمایید.

ابتدا باید مخزن epel را نصب کنید.

yum install epel-release

ابتدا باید Composer را نصب کنید.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

اکنون باید laravel نصب شود.

وارد مسیری شوید که میخواهید لاراول نصب شود.

git clone https://github.com/laravel/laravel.git
cd laravel
composer install
chown -R USER.USER laravel
chmod -R 755 laravel

در نهایت باید Encryption Key ایجاد و در فایل app.php دخیره شود.

php artisan key:generate

Application key [Z4hfTHU7hFMwHauzOwv7rO9e0MJ9UnhQ] set successfully.

اطلاعات را در فایل config/app.php در قسمت APP_KEY به شکل زیر ذخیره کنید.

‘key’ => env(‘APP_KEY’, ‘Z4hfTHU7hFMwHauzOwv7rO9e0MJ9UnhQ’),
‘cipher’ => ‘AES-256-CBC’,

 

در نهایت سرویس apache را restart کنید.

service httpd restart

مفهوم MPM در Apache و انتخاب آن

وب سرور apache بصورت modular می باشد و امکان اضافه و حذف ویژگی ها به آن براحتی وجود دارد.  ماژول MPM در هسته apache قابلیت مدیریت اتصاصلات شبکه و توزیع درخواست ها را برعهده دارد. MPM به شما امکان استفاده از پردازش های multitasking و استفاده از apache در سایر سیستم عامل ها را میدهد.
MPM در هر لحظه فقط می تواند داری  یک حالت می باشد یکی از حالات worker|prefork|event
انتخاب MPM صحیح به عوامل زیادی ارتباط دارد. 
​– Worker MPM
با استفاده از عملکرد multiple child processes با فرایند زیاد برای هر درخواست انجام میشود. هر فرایند با یک کانکشن در زمان مدیریت میشود. worker یک انتخاب خوب برای سرورهای پر ترافیک به علت استفاده از حافظه کمتر است.
​–  event MPM
 ​مانند worker عمل میکند اما اجازه ورود درخواست های بیشتری را بصورت همزمان در  پردازش فرایندها ها وارد میکند. آزاد کردن فرایند های اصلی برای پردازش بروی درخواست های جدید انجام میشود.
— prefork MPM
از روش multiple child processes برای هر فرایند استفاده میکند.  هر پردازش با یک کانکشن در لحظه انجام میشود. در بسیاری موارد سرعت آن با worker یکسان است اما preforker حافظه memory بیشتری را استفاده میکند. در برخی حالات دارای شرایط بهتری نسبت به worker است، مانند راحت تر بودن رفع مشکل در سیستم عامل های مختلف
صرف نظر ازینکه کدام  MPM را انتخاب کنید، شما باید آن را مناسب پیکربندی کنید. به طور کلی، پیکربندی MPM شامل مشخص کردن اینکه apache چگونه به کنترل  بسیاری از worker در حال اجرا مشغول شود که شامل threads و processes می باشد.
در ادامه مفاهیم بیشتری پیرامون تنظیمات apache ارائه خواهد شد.

افزایش کارایی WordPress با Varnish cache

این مقاله ترجمه شده است و صحت کامل آن توسط serversetup تایید نمی شود.

یک واقعیت که با آن روبرو هستیم این است که WordPress آهسته است. هر درخواست چندین خط را اجرا و درخواست به دیتابیس ارسال می نماید. WordPress یک انتخاب خوب و راحت برای راه اندازی سایت می باشد اما نیاز به کمک برای بهبود سرعت آن وجود دارد. در غیر اینصورت ممکن است سرعت سایت کاهش یابد و یا دیتابیس با crash مواجه شود.

Varnish Cache یک برنامه یک شتاب دهنده وب نیز به عنوان caching HTTP reverse proxy است. در هر سرور apache قابل نصب و پیکربندی برای cache کردن می باشد. Varnish Cache واقعا سریع است و سرعت پردازش هر فاکتور ارسالی بین ۳۰۰-۱۰۰۰ برابر سریعتر خواهد بود. Varnish پیش از وب سرور به پورت ۸۰ گوش میدهد. بسته به معماری و config سرور تا ۸۰% سرور پردازش درخواست ها افزایش می باشد. شرکت سازنده اعتقاد دارد Varnish از Nginx, Litespeedو Lighttpd عملکرد بهتری دارد و بار سرور را به طور چشمگیری کاهش میدهد.

مقایسه Apache2 و NginX

زمان، پول است. این جمله در زمان تجارت و تبلیغ معنای بیشتری میابد. اکنون زمان را بدست آورید.

Nginx معمولا در قالب PHP-FPM (مدیریت فرآیند FastCGI) و APC (جایگزین PHP کش) استفاده می شود.

آزمونی برای ۳ نوع متفاوت از نرم افزارهای  PHP  در سه Config  مختلف سرور:

۱-      برنامه حجیمی با استفاده از Zend Framework

۲-      اسکریپت کوچکی از PHP

۳-      WordPress

ادامه ی مطلب

.htaccess و کاربردهای آن

موارد کاربرد فایل .htaccess

۱٫     Set TimeZone

تنظیم زمان سایت با کد زیر:

SetEnv TZ Asia/Tehran

۲٫      ۳۰۱ permanent Redirect

استفاده از  ۳۰۱ Permanent Redirects برای استفاده در موتور های جستجو

Redirect 301 http://www.domain.com/home  http://www.domain.com/

ادامه ی مطلب