درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
دوره های توسینسو
دوره آموزشی فوق تخصصی Shell Scripting در BASH Shell
مدرس: محمد عابدینی
این دوره را در 19 قسط خریداری کنید
آموزش نصب سیستم عامل اندروید روی کامپیوترهای شخصی با Android PC
مدرس: محمد عابدینی
این دوره را در 1 قسط خریداری کنید
دوره آموزشی راه اندازی ایمیل سرور iRedMail در OpenBSD
مدرس: محمد عابدینی
این دوره را در 2 قسط خریداری کنید
گام به گام تخصصی مدیریت و پیکربندی سرورها با Ansible در لینوکس
مدرس: مجتبی اسمائی
این دوره را در 10 قسط خریداری کنید
دوره آموزشی راه اندازی سرویس های تحت شبکه در لینوکس CentOS
مدرس: آرش حیدری
این دوره را در 12 قسط خریداری کنید
دوره آموزشی رایگان نصب انواع لینوکس بصورت عادی و Dual Boot
مدرس: محمد عابدینی
این دوره را در 4 قسط خریداری کنید
دوره آموزشی Linux Essentials = دریچه ورود شما به دنیای لینوکس
مدرس: محمد نصیری
این دوره را در 17 قسط خریداری کنید
دوره اموزشي فوق تخصصي سيستم عامل لينوكس RHCSA قسمت اول
مدرس: علیرضا سیفی و هومن برازنده
این دوره را در 10 قسط خریداری کنید
دوره آموزشی جامع CentOS Web Panel یا CWP
مدرس: کاظم تقندیکی
این دوره را در 10 قسط خریداری کنید
دوره آموزشی مقدماتی BASH Scripting در لینوکس
مدرس: مجتبی اسمائی
این دوره را در 10 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC1 کد 102
مدرس: محمد نصیری
این دوره را در 16 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC2 کد 201
مدرس: محمد نصیری
این دوره را در 27 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC1 کد 101
مدرس: محمد نصیری
این دوره را در 18 قسط خریداری کنید
دوره آموزشی بین المللی لینوکس LPIC2 کد 202
مدرس: امیرحسین احمدی
این دوره را در 29 قسط خریداری کنید
دوره آموزشی کنترل پنل هاستینگ CWP
مدرس: فربد رستم صولت
این دوره را در 6 قسط خریداری کنید

آموزش راه اندازی Cache سرور Squid قسمت دوم : راه اندازی Squid در حالت Full Proxy و Cache Server

8 نظرات
283 بازدیدها
با سلام خدمت شما دوستان ITPRO عزیز ، در ادامه آموزش مربوط به squid , راه اندازی پروکسی سرور در حالت Full Proxy و Cache Server را خواهیم گفت .در ابتدا باید راجع به اینکه Full Proxy چیست یک توضیحی بدهیم : حالت Full Proxy به این صورت میباشد که کلاینت درون مرورگر خود یا درون نرم افزارهای Proxy Client آدرس پروکسی سرور را زده و به آن متصل خواهد شد , در این حالت کاربر متوجه خواهد شد که به پروکسی سرور متصل است .

Cache Server چیست ؟


همانطور که از نام اون مشخصه کار Caching را برای ما انجام خواهد داد که Squid این قابلیت را به خوبی پشتیبانی میکند . به این صورت که به عنوان مثال کلاینت سایتی را درخواست میکند پروکسی سرور Object هایی که در وب سایت به عنوان Object های Static معرفی شده است را در دیسک خود ذخیره میکند و اگر کلاینت دیگری همین سایت را درخواست کند پروکسی سرور Object هایی که به صورت Static میباشند و در دیسک خود ذخیره کرده است را دیگر از سرور مقصد نخواهد گرفت و آنها را از Cache خود به کلاینت تحویل میدهد . این کار دو ویژگی مهم دارد :

  1. افزایش 30 تا 50 درصدی باز کردن صفحات سایت .
  2. مصرف کمتر پهنای باند

راه اندازی پروکسی سرور در حالت Full Proxy


نصب Squid را در جلسه اول توضیح دادیم .برای راه اندازی در حالت Full Proxy ابتدا فایل کانفیگ را با دستور
Vim /etc/squid/squid.conf
سپس در خطوط ابتدایی خطهایی که Access list جهت رنج شبکه میباشد را Comment کرده و رنج شبکه خود را وارد کنید . به عنوان مثال رنج شبکه من که قرار است از proxy serverاستفاده کنند 192.168.1.0/24 میباشد
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8         # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
#acl localnet src fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl localnet src 192.168.1.0/24
توجه داشته باشید که در اینجا هر آی پی به غیر از این رنج به پروکسی سرور درخواست بفرستد جوابی نخواهد گرفت.گام بعدی مشخص کردن مسیر جهت Cache Server . جهت این کار خط 62 را از uncomment کنید .در اینجا میتوانید پارامتر ها را بسته به نیاز خود تغییر دهید . توضیح پارامتر ها در جلسه اول به صورت کامل گفته شده است.
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 100 16 256
توجه داشته باشید که اگر این خط را Uncomment نکنید باز هم عملیات Cache صورت خواهد گرفت ولی برروی مموری ذخیره خواهد شد که اینکار معایب خود را دارد و پیشنهاد میشود اگر میخواهید سرورتان عملیات Caching را نیز انجام دهد حتما کانفیگ مورد نظر را انجام دهد و در غیر اینصورت جهت متوقف کردن عملیات Cache دستور زیر را در انتهای فایل کانفیگ اضافه کنید .
cache deny all

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

visible_hostname centos7
Image



خب در اینجا تنظیمات مربوط به Squid ما برروی سرور به اتمام رسید .

  • نکته مهم : فایروال لینوکس به صورت پیش فرض روی سرور فعال میباشد و اجازه ارسال و دریافت پکت ها را از پورت 3128 نخواهد داد , جهت حل این مورد دستورات زیر را در پروکسی سرور خود وارد کنید .

firewall-cmd --zone=public --permanent  --add-service=squid

در Cent OS7 سرویس جدیدی به نام firewalld معرفی شده است که میتوان گفت جایگزین iptables شده است .تنظیمات مربوط به سرور به اتمام رسیده است و میتوانید با دستور زیر پروکسی سرور خود را راه اندازی کنید .
systemctl restart squid 
دستور زیر را هم جهت اینکه squid در زمان بوت به صورت اتومات فعال شود وارد کنید .
systemctl enable squid

تنظیمات مربوط به کلاینت


جهت استفاده از پروکسی سرور در کلاینت در مرورگر خود تغییرات زیر را اعمال کنید ، مرورگر من در اینجا فایرفاکس میباشد و آی پی سرور من 192.168.1.10 میباشد .ابتدا وارد صفحه تنظیمات شوید که در لینوکس از منوی Edit ---> Preferences و در ویندوز از منوی Tools ----> Option وارد تنظیمات شوید و طبق مراحل زیر جلو بروید
Image

Image


در اینجا فقط فایرفاکس از پروکسی سرور استفاده میکند و مابقی نرم افزارها به صورت عادی از اینترنت استفاده میکنند. جهت اینکه تمامی سیستم شما از پروکسی استفاده کند راه های مختلفی وجود دارد که مثلا در سیستم عامل لینوکس با استفاده از environment ها و در ویندوز نیز با استفاده از نرم افزارهایی مثل proxyfire میتوانید استفاده کنید .

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

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

لاگ ها در Squid


برای دیدن لاگ در پروکسی سرور وارد مسیر زیر شوید
cd /var/log/squid

در اینجا 2 فایل خواهید دید :
access.log
cache.log

فایل access.log : این فایل شامل اطلاعات درخواست ها میباشد و میتوان گفت اصلی ترین فایل لاگ در Squid میباشد .

Syntax این فایل به صورت زیر میباشد
Timestamp Elapsed Client Action/Code Size Method URI Ident Hierarchy/From Content
  • Timestamp : زمان بسته شدن سوکت میباشد در واقع زمانی که درخواست رفته است و جوابی دریافت کرده است که براساس میلی ثانیه از تاریخ ۱ ژانویه ۱۹۷۰ که مبدا تاریخ سیستم های یونیکسی میباشد محاسبه شده است .
  • Elapsed : براساس میلی ثانیه میباشد و زمانی است که از درخواست گذشته
  • Client : آی پی کلاینت درخواست کننده را مشخص کرده است
  • Action : مشخص کننده کاری میباشد که برروی درخواست صورت گرفته است
  • Code : منظور HTTP Reply Code میباشد .
  • Size : مقدار دیتا داده شده به کلاینت
  • Method : نوع درخواست میباشد .
  • URI :آدرس درخواست شده از سمت کلاینت میباشد
  • Ident : نتیجه بررسی RFC931/ident برای یوزر کلاینت میباشد که پروتکلی جهت احراز هویت است . در حالت پیش فرض غیرفعال میباشد و در لاگ با علامت − مشخص شده است .
  • Hierarchy : توضیحات راجع به اینکه Object درخواست شده چگونه و از کجا تحویل داده شده است به عنوان مثال از Cache داده شده یا مستقیم از سرور گرفته شده .
  • From : نشان دهنده IP سرور Object میباشد .
  • Content : نشان دهنده mime type درخواستی میباشد .
  • cache.log : نشان دهنده ارور های Squid میباشد و کارهای خاصی که انجام میدهد به عنوان مثال اگر دچار مشکلی شد اولین فایلی که نگاه خواهید کرد این فایل خواهد بود .

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

پایان بخش دوم
مهرداد سامی
موفق و پیروز باشید

برچسب ها
ردیف عنوان قیمت
1 آموزش راه اندازی Cache سرور Squid قسمت اول : نصب Squid و تحلیل فایل config رایگان
2 آموزش راه اندازی Cache سرور Squid قسمت دوم : راه اندازی Squid در حالت Full Proxy و Cache Server رایگان
3 آموزش راه اندازی Cache سرور Squid قسمت سوم : راه اندازی Basic Authenticate رایگان
4 آموزش راه اندازی Cache سرور Squid قسمت چهارم : راه اندازی Squid در حالت Transparent رایگان
مطالب مرتبط

در حال دریافت اطلاعات

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

    یکی از روش هایی که شما میتونید با اون براساس سایز محدودیت بذارید دستور زیر هستش :
    maximum_object_size 10 MB
    
    مثلا ما در اینجا فقط Object هایی که کمتر از 10 مگ هستن رو کش میکنیم. به صورت پیش فرض روی 4 مگ هستش.

    در مورد محدودیت با پسوند هم شما میتونید از کد زیر استفاده کنید
    acl mp3_file url_regex -i \.mp3$
    cache deny mp3_file
    

    در اینجا فایل های mp3 دیگه کش نخواهند شد .



  • درود

    مهندس اگر فقط بخوام کش سرور رو راه اندازی کنم تا کجای آموزش شمارو باید انجام بدم ؟ یه سوال دیگه هم اینکه فرضا سروری که میخوام روش کش سرور رو راه بندازم 4 تا هارد 1 ترابایت داشته باشه، اگر بخوام از هر 4 تا هارد برای ذخیره سازی فایل های کش شده استفاده کنم ، آیا اینکار شدنیه ؟ اگر شدنیه لطفا بفرمایید به چه نحو
  • دوستان لطفا سئوالات رو جداگونه در وب سایت مطرح کنید ، ساختار حفظ بشه و سئوال جواب دادن هم برای کاربرامون امتیاز محسوب بشه.
  • سلام وحید جان .....

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

    در مورد سوال دومت هم شما میتونی چندین cache_dir تعریف کنی و به هرکدام ادرس های مختلف بدی فقط به این نکته توجه کن که زمانی که دایرکتوری را ساختی یوزر squid را owner اون کنی .و نکته آخر هم اینکه SElLinux به این مورد الارم میده و برای حل این مشکل هم دستور زیر را وارد کن
    semanage fcontext -a -t squid_cache_t DIRECTORY-ADDRESS
    
  • سلام
    من وقتی دستور systemctl restart squid رو وارد میکنم با پیغام زیر مواجه میشم مشکل کجاست؟
    bash: systemctl: command not found
    در ضمن این پیام رو میده
    Job for squid.service failed because the control process exited with error code. See "systemctl status squid.service" and "journalctl -xe" for details.
    و وقتی دستور systemctl status squid.service رو وارد میکنم این وضعیت رو نشون میده

    squid.service - Squid caching proxy
    Loaded: loaded (usrlibsystemdsystem/squid.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Thu 2016-11-03 00:53:31 IRST; 1min 59s ago
    Process: 31447 ExecStartPre=usrlibexecsquidcache_swap.sh (code=exited, status=2)

    Nov 03 00:53:31 MyFedora systemd[1]: Starting Squid caching proxy...
    Nov 03 00:53:31 MyFedora cacheswap.sh[31447]: initcache_dir varspool/squid...
    Nov 03 00:53:31 MyFedora systemd[1]: squid.service: Control process exited, code=exited status=2
    Nov 03 00:53:31 MyFedora systemd[1]: Failed to start Squid caching proxy.
    Nov 03 00:53:31 MyFedora systemd[1]: squid.service: Unit entered failed state.
    Nov 03 00:53:31 MyFedora systemd[1]: squid.service: Failed with result 'exit-code'.


برای ارسال نظر ابتدا به سایت وارد شوید

arrow