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

خانه / سیستم عامل

سیستم عامل

سیستم 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 سیستم   فراخوانی میشود)

نصب PHP Composer در لینوکس

Install PHP Composer on a Linux

برای نصب php composer مراحل زیر را دنبال کنید.

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

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

composer -V

آشنایی کامل با فایروال Iptables

Iptables and Netfilter Architecture

فایروال ها ابزار مهمی هستند که می توانند به منظور حفاظت از سرورها و زیرساخت ها پیکربندی شوند. در اکوسیستم لینوکس، ابزار iptables  به عنوان فایروال به طور گسترده ای استفاده می شود که با چارچوب فیلترینگ بسته netfilter هسته (kernel) سیستم عامل در ارتباط است.

در این مقاله  ما در مورد چگونگی استفاده از iptables و تعامل آن با netfilter و چگونگی ارتباط اجزای مختلف فیلترینگ و سیستم mangling در کنار یکدیگر صحبت خواهیم کرد.

Netfilter Hooks

۵ قلاب یاhook  برای netfilter  تعریف شده است که برنامه میتواند با آن ها کار کند. هر پکتی که وارد فرایند پردازش میشود با یکی از hook  ها در kernel  قلاب (hook) میشود. بسته به نوع هر پکت input, output و یا  forward قلابی به آن اختصاص داده میشود.

در ادامه قلاب هاییکه در پشته پروتکلی شبکه تعریف می شوند به اختصار بیان شده است:

ادامه ی مطلب

افزایش امنیت سرورهای لینوکسی به زبان ساده (بخش دوم)

در ادامه بخش اول افزایش امنیت سرور های لینوکسی به موارد دیگری در این زمینه آشنا خواهیم شد.

  • سرویس ها و پکیج های غیرضروری را نصب نکنید. تنها ماژول هایی را نصب کنید که به آن ها نیاز دارید.
  • اتصال SSH از طریق root را محدود نمایید، راهکار مناسب استفاده از ورود دو مرحله ای ۲-Factor می باشد. حتما root login  را در سرویس ssh به حالت disable  قرار دهید. میتوانید از SSH-Key Logins استفاده کنید.
    امن سازی ssh
  • از پورت های پیش فرض استفاده نکنید. برای سرویس هایی مانند ssh پورت پیش فرض ۲۲ را به پورت دیگری تغییر دهید.
  • فایروال سرور را تنظیم نمایید. پورت ها و دسترسی های اضافی را بلاک کنید. تنها پورت های مورد نظر را باز کنید.
    تنظیمات فایروال csf
  • دسترسی ها و پرمیژن ها را بدرستی تنظیم کنید و از دادن دسترسی هایی بیشتر از نیاز واقعی به فایل ها و مسیر ها بپرهیزید.
  • از هر سیستمی و هر جایی به سرور خود متصل نشوید! رمزها را بروی مرورگر یا نرم افزارها ذخیره نکنید.
  • از نرم افزارهای مدیریت و ذخیره پسورد مانند keepass استفاده کنید.
  • در صورتی که سرور شما بصورت نصب و راه اندازی شده به شما تحویل داده شد تمام پسورد های مربوط به سرور مانند root و SQL  را تغییر دهید.

افزایش امنیت سرورهای لینوکسی به زبان ساده (بخش اول)

افزایش امنیت سرورهای لینوکسی 
این روزها همه نگران امنیت سرور هستند اما واقعا با وجود تمام مشکلات، اراده ای برای استفاده از راهکارهای مناسب و یادگیری آن مشاهده نمیشود. در این مقاله سعی داریم نکات کلیدی که گاها بسیار ساده هستند اما در اغلب اوقات به آن ها توجه نمیشود را بررسی کنیم.
+ اتصال، ارتباط و انتقال رمزنگاری شده و امن
این موضوع از اهمیت بالایی برخوردار است اما همچنان نادیده گرفته میشود. هنوز هم اکثر مدیران سرور به علت راحتی کار از اتصال ها و ارتباطات غیر امن استفاده میکنند.
پیشنهادها:
– استفاده از ssh، scp، rsync و SFTP برای انتقال اطلاعات. یا با استفاده از ابزارهای sshfs و  fuse می توانید فایل سیستم را در مکان مورد نظر map کنید.
– استفاده از VPN برای ایجا کانال رمزنگاری شده برای ارتباط ها
– استفاده از SSL برای وب سرور جهت ارتباط امن بین سرور و کلاینت
– تا جای ممکن است FTP، Telnet و RSH استفاده نکنید. با توجه به اینکه اطلاعات در این حالت clear Text هستند امکان sniff کردن اطلاعات وجود دارد.
– بسته ها، پکیچ ها و نرم افزارهای اضافی و بلااستفاده را نصب نکنید.
– سعی کنید سرویس های مختلف را بروی سرورها مجزا با آدرس های متفاوت ایجاد کنید. برای این کار میتوانید از مجازی سازی کمک بگیرید.
– kernel و تمام نرمافزارهای سرور را بروز نگه دارید.
– از اکستنشن های امنیتی سیستم عامل استفاده کنید. Selinux توانایی زیادی در کنترل امنیت سرور دارد اما از جایی که پیکربندی و تنظیمات آن دشوار است اغلب این ویژگی را غیرفعال میکنند! برای استفاده از این ابزارها باید مهارت لازم را داشته باشید.
استفاده از Selinux پیشنهاد میشود. کنترل دسترسی ها و مجوزها در سطوح مختلف را پیاده سازی میکند.

فایل Hosts سیستم عامل چیست؟ چگونه فایل Hosts را تغییر دهیم.

سیستم ابتدا فایل Hosts را بررسی میکند و سپس به سراغ DNS های سیستم میرود، بنابراین برای مشاهده سایت هایی که هنوز DNS آن ها را تنظیم نکرده اید و یا سرور میزبانی کننده دارای DNS سرور نیست، میتوانید از فایل Hosts برای این منظور استفاده کنید. در واقع بجای ترجمه آدرس سایت از طریق DNS، درخواست مستقیما از IP تنظیم شده فراخوانی میشود.

برای تغییر فایل هاست Hosts در سیستم عامل های مختلف توجه داشته باشید که باید دسترسی کافی برای تغییرات داشته باشید، همچنین آنتی ویروس و فایروال سیستم خود را غیر فعال نمایید.

نحوه تغییر فایل Hosts در ویندوز 

نحوه تغییر فایل Hosts در لینوکس

نحوه تغییر فایل Hosts در مک 

همچنین میتوانید از  افزونه virtual host مرورگر کروم chrome استفاده کنید. در این حالت برای مشاهده سایت دیگر نیاز به ویرایش فایل hosts سیستم را ندارید. کافی است افزونه virtual host رابروی مرورگر chrome خود نصب کنید.

پرمیژن طلایی

استفاده از پرمیژن های مناسب تاثییر بسیاری در جلوگیری از سو استفاده از اطلاعات و حفظ امنیت دارد.
می توانید از دستورات زیر در cron برای تنظیم خودکار پرمیژن فایل های مهم مانند config دیتابیس استفاده نمایید.

find /home/*/public_html/configuration.php -print -exec chmod 400 {} \;
find /home/*/public_html/config.php -print -exec chmod 400 {} \;
find /home/*/public_html/wp-config.php -print -exec chmod 400 {} \;
find /home/*/public_html/*/configuration.php -print -exec chmod 400 {} \;
find /home/*/public_html/*/config.php -print -exec chmod 400 {} \;
find /home/*/public_html/*/wp-config.php -print -exec chmod 400 {} \;
find /home -type d -perm 777 -print -exec chmod 755 {} \;

می توانید فایل های دیگر را نیز اضافه نمایید.

برای تغییر تمام فایل ها در مسیر جاری و زیرپوشه ها دستور بصورت زیر خواهد بود.

find * -iname 'wp-config.php' -print -exec chmod 444 {} \;

تنظیم TimeZone سرور لینوکس

برای تنظیم ساعت سرور به زمان ایران باید از طریق ssh دستورات زیر را اجرا نمایید:

mv /etc/localtime /etc/localtime.bak
rm -f /etc/adjtime 
ln -s /usr/share/zoneinfo/Asia/Tehran  /etc/localtime
ntpdate 0.asia.pool.ntp.org

همچنین برای یکسان سازی hardware clock و system clock در مسیر زیر باید فایل clock را ویرایش نمایید:

nano /etc/sysconfig/clock

و تنظیمات بصورت زیر باشد:

UTC=false
ZONE="Asia/Tehran"

برای تنظیم ساعت php در مسیر زیر php.ini سرور مقدار زیر را تنظیم نمایید.

date.timezone = "Asia/Tehran"

افزایش session های Remote Desktop

یه صورت پیشفرض در ویندوز سرور شما فقط می توانید با دو یوزر به سرور از طریق remote desktop متصل شوید با استفاده از این آموزش شما می توانید با هر تعداد یوزر و session که می خواهید به سرور ویندوز از طریق remote desktop متصل شوید.

برای افزایش تعداد connection ها در ویندوز سرور مراحل زیر را انجام دهید :

۱ – ابتدا run را بازکنید و سپس دستور gpedit.msc را در آن وارد کنید.
۲ – سپس به مسیر زیر بروید :
در ویندوز سرور ۲۰۰۸ :
Computer ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostConnections
در ویندوز سرور ۲۰۰۳ :
Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal Services

۳ – حال برای افزایش تعداد connection ها به مقدار دلخواه :

در ویندوز سرور ۲۰۰۸ Restrict each user to a single session را انتخاب کنید و مقدار دلخواه خود را وارد کنید .

در ویندوز سرور ۲۰۰۳ Restrict Terminal Services users to a single remote session را انتخاب کرده و تعداد connection های مورد نظر خود را وارد کنید.

برای اعمال تغییرات سرور خود را restart کنید.

انتقال اطلاعات از طریق rsync

برای انتقال اطلاعات از یک سرور ب سرور دیگر می توانید از دستور rsync استفاده کرد.

screen rsync  -arPvz file.tar --rsh='ssh -p227' root@187.92.8.45:/your/destination/address

ویا دستور زیر:

screen rsync -arvz -e 'ssh -p 227' * root@37.187.12.16:/your/destination/address

مقابل -p باید port سرور مقصد را وارد نمایید و پس از @ باید IP سرور مقصد را وارد کنید.

r جهت انتقال اطلاعات زیر پوشه ها

P جهت مشاهده درصد پیشرفت عملیات انتقال