تبليغاتX
Notes On Computer Networks - Squid Web Proxy Cache - (قسمت اول - معرفی )

اسکویید یک پراکسی  opensource  با قابلیت کش کردن صفحات وب است .

اسکویید قابیت های زیادی دارد که مدیر شبکه را برای استفاده از آن ترغیب می کند . از جمله :

  • با اسکویید می توانید در مصرف پهنای باند شبکه صرفه جویی کنید .
  • سرعت دسترسی کاربران را به صفحات اینترنتی به طور محسوسی افزایش بدید.
  • از کلاینت های درون شبکه در مقابل شبکه اینترنت حفاظت کنید . ( بالا بردن امنیت کلاینت های متصل به اینترنت )
  • اطلاعات کاملی وضعیت ترافیک وب شبکه بدست آورید . (بفهمید  کاربران در اینترنت چیکار می کنند ؟)
  • از دسترسی کاربران به وبسایت ها و محتواهای غیر مجاز جلوگیری کنید .
  • اجازه دسترسی به اینترنت را برای کاربران خاصی محدود کنید .
  • بار ترافیک را از روی سرور های شبکه کم کنید .
  • تبدیل درخواست های رمزنگاری نشده در یک سمت به درخواست های رمزنگاری شده یا بالعکس

اسکویید علاوه بر قابلیت پراکسی می تواند عمل کش کردن صفحات را نیز انجام دهد  .

 در حالت پراکسی همانند یک واسطه عمل می کند .درخواست ها را از کلاینت قبول می کند آنها زا پردازش کرده و به سمت سرور ها هدایت می کند . این درخواست ها ممکن است در حین پردازش دستکاری شوند ، از بین برده یا در فایل های لاگ )  logfile)  ها ثبت شوند .در واقع مدار ارتباطی بین کلاینت ها و سرورهای اینترنت شکسته می شود که این قابلیت باعث بالارفتن ضریب امنیت کلاینت ها می شود .

 

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

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

همانطور که تا حالا باید متوجه شده باشید اسکویید بین کلاینت های شبکه و اینترنت ( سرور های موجود در اینترنت ) قرار می گیرد.

 

 

 در واقع می توان گفت اسکویید دو سمت دارد یکی سرور ها که می تواند سرور http و ftp  یا  gopher  باشد و دیگری سمت کلاینت ها که همان درخواست هایی است که از browser  انها صادر می شود .

 

در ادامه با چند تا اصطلاح آشنا می شویم که از این به بعد زیاد با آنها سرو کار داریم.

 

Redirectors : یک پراسس خارجی است ( یک برنامه جانبی اسکویید ) که URL  ها ی موجود در درخواست های کاربران را دوباره نویسی می کند. به عنوان مثال اگر چه کاربر در خواست http://www.windows.com  را داده است شما می توانید url  را به http://debian.org  تغییر دهید .از این قابلیت معمولا برای حذف تبلیغ های وبسایت ها یا برای برطرف کردن bug  های browser  ها سود می برند . اگرچه معمولا در ایران صاحبان ISP  ها برای گذاشتن تبلیغ یا فرستادن پیام ها مختلف به کاربران خود بر روی وبسایتهای مختلف نیزاز این قابلیت  استفاده می کنند .

به طور خلاصه میتوان redirector ها را تکه برنامه هایی معرفی کرد که URL  ها را می خوانند و آنها را به URL  های دیگر تغییر میدهند . اسکویید به طور پیش فرض با هیچ نوع redirector ای نصب نمی شود ولی می توان آنها را به راحتی با زبان هایی مثله perl  یا pythone نوشت یا از اسکزیپت های آماده که قبلا نوشته شده است استفاده کرد .

 

Cache hit : یک عمل Cache hit  زمانی است که یک درخواست از کش خوانده می شود . شاید برای درک بهتر درخواست را به عنوان یک فایل در نظر بگیرید ( اگرچه اینطور نیست ) که هرموقع یک فایل که کش شده است در درخواست دوباره کاربر از کش خوانده شود یک عمل cache hit  اتفاق افتاده است. سرعت این عمل که به آن cache hit ratio  می گویند درصد تمامی درخواست هایی است که از کش خوانده شده اند . معمولا کش سرور ها hit ratio ای بین 30 تا 60 درصد دارند .

 

Cache miss : وقتی یک درخواست به هر دلیلی نتواند از کش خوانده شود یک Cache miss  اتفاق افتاده است . به عنوان مثال ممکن است یک درخواست برای اولین بار داده شده باشد و هنوز در کش ذخیره نشده باشد . یا یک درخواست قبلی توسط درخواست دیگری بازنویسی شده باشد و در نتیجه در کش موجود نباشد .

حتی می توان صفحات اینترنتی را با تنظیم تگ های Html  غیر قابل کش کردن کرد و در نتیجه درخواست به آن صفحه همیشه با cache miss  همراه خواهد بود .

 

Cache validation : شاید این سوال برای شما پیش آمده باشد که آیا کش همیشه درخواست های تکراری را با صفحات یکسان جواب میدهد. به عنوان مثال آیا صفحه مربوط به آب و هوای yahoo  که مدام در حال تغییر است در درخواست های مکرر به صورت ثابت نمایش میدهد؟ خیر . اسکویید با استفاده از تگ timestamp  بروز رسانی را انجام میدهد. بدین صورت که با هربار درخواست کاربر اسکویید timestamp  صفحه کش شده را با timestamp  (last-modified ) صفحه مقایسه کرده و در صورت تغییرآنرا به روز رسانی می کند.

 

سخت افزار مورد نیاز اسکویید :

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

اسکویید سخت افزار متعادلی نیاز دارد .حافظه (RAM)  مهمترین قسمت در اسکویید  است .و باعث بالارفتن کارایی آن می گردد .فاکتور مهم دیگر فضای هارد دیسک است . هرچه فضا بیشتر باشد درخواست های بیشتری می توانند کش شوند و در نتیجه hit ratio  بالا می رود .سرعت هارد دیسک و واسط های شبکه هم به طور بسزایی موثر هستند . توصیه می شود از هارد های SCSI استفاده شود .اگرچه سی پی پرسرعت برای بهبود کارایی تا حد کمی موثر است ولی  تاثیربسیار زیادی ندارد .

چون اسکویید از حافظه بسیار کمی برای ذخیره هر درخواست استفاده می کند یک رابطه بین حافظه و فضای ذخیره سازی وجود دارد .شما برای هر یک گیگابایت فضای ذخیره سازی 32 مگابایت حافظه نیاز دارید .به عنوان مثال با احتساب 512 مگابایت ram می توان 16 گیگابایت فضای ذخیره سازی برای عمل کش کردن استفاده کرد . البته باید توجه کنید که حافظه مورد نیاز برای سایر پراسس های سیستم را نیز در نظر بگیرید . ( یه عنوان مثال 128 مگابایت را برای پراسس هایی غیر از اسکویید در نظر بگیرید. )

البته میزان حافظه مورد نیاز بستگی به فاکتور های متعددی مانند اندازه object  های کش شونده . معماری سی پی یو ) 64 یا 32 بیت ( ، تعداد کاربران همزمان یا قابلیت های متعدد اسکویید که فعال می کنید دارد.

 

وبسایت اسکویید :

وبسایت  اسکویید http://www.squid-cache.org/  می باشد که می تواتید در آنجا

 کد منبع اسکویید را دانلود کنید

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

با توسعه دهندگان اسکویید ارتباط برقرار کنید.

به نرم افزار ها و اسکریپت های جانبی دسترسی پیدا کنید.

از آخرین مربوط به اسکویید یا باگ ها ی جدید و patch  ها آنها  اطلاع یابید.

سوالات خود را در mailing list  های اسکویید مطرح کنید

 

 

اسکویید به صورت سورس کد در وبسایت squid-cache.org  قابل دریافت است .ولی برای راحت کردن عملیات نصب ، نسخه های از قبل آماده شده تحت سیستم عامل های مختلف مثل rpm  و deb  و ... نیز وجود دارد.اگرچه نصب این گونه بسته های از قبل آماده شده به مراتب ساده تر است ولی به شما پیشنهاد می کنم source code  را دانلود و نصب کنید .زیرا بسیاری ازقابلیت های ) Feature ) های اسکویید فقط از طریق نصب ازطریق  کد منبع قابل فعال شدن است .

قابلیت دیگری به نام Anonymous CVS نیز در توسعه squid  استفاده می شود که این امکان را می دهد که بدون نصب مجدد نسخه جدید اسکویید تغییرات را اعمال کرد .

 

نام بسته های اسکویید با عبارات stable  و devel  شروع می شوند . به عنوان مثال 2.5STABLE4  که نمتیش دهنده نسخه 2.5 از سری Stable  است . همانطور که می دانید نسخه stable  نسخه ای کاملا تست شده است و باگ های آن تا حد ممکن رفع شده است . بر خلاف نسخه devel  که مخفف عبارت development  است و نسخه تحت توسعه است .

 

 

 

 

 

+ نوشته شده توسط امید مهاجرانی در چهارشنبه دوازدهم اردیبهشت 1386 و ساعت 11:31 |