تبلیغات
وبلاگ تخصصی لینوکس - مطالب نرم افزار آزاد
و هرچیز جالب دیگه ای ;)

کش سرور وارنیش - Varnish Cache Server

نویسنده :. .
تاریخ:سه شنبه 27 خرداد 1393-06:20 ب.ظ

سرویسVarnish  یک کش سرور است که فقط با سرویس httpd کار می کند و در اصل برای ارائه سرعت بهتر و بالاتر در پاسخ گویی به کاربران و مشتری های وب سایت کاربرد دارد. وارنیش رو برای هر سروری که با http کار میکند می توان نصب کرد و محتوای آن را کش کرد. وارنیش جزء نرم افزار های رایگان و تحت مجوز BSD است. پروژه وارنیش سال 2005 شروع شد و نسخه 1 اون سال 2006 ریلیز شد.
سرویس وارنیش معمولا برای سایت هایی که بازدید زیادی دارند و بصورت داینامیک سرویس می دهند مورد استفاده قرار میگیرد. در این سایت ها منابع سیستمی به شدت درگیر می شوند و اکثرا منجر به کندی سرور و یا عدم پاسخ گویی به مشتری ها می شوند.
نحوه ی کار Varnish  بدین صورته که اطلاعات صفحات وب سایت را در کش خود ذخیره می کند و در صورت وجود درخواست مشابه پاسخ کاربر را از کش خود می دهد و دیگر به وب سرور ارجاع نخواهد داد.
با وجود کانقیگ Varnish، درخواست کاربران دیگر سمت وب سرویس نخواهد رفت و تمام درخواست ها در ابتدا به Varnish می روند.
با توجه به استفاده بسیار زیاد از وب سرور Apache و عدم پاسخ گویی آن در زمان هایی که تعداد کانکشنهای آن زیاد میشود و مصرف منابع سیستمی افزایش می یابد، نیاز به بهینه سازی وب سرور پیش می آید. استفاده از Varnish به عنوان کش سرور که یکی از روش های موجود در افزایش سرعت لود شدن وب سایت برای کاربران و کاهش استفاده از منابع سیستمی (RAM & CPU)  است می تواند تاثیر زیادی در عملکرد وب سرویس داشته باشد.
نحوه ی عملکرد وارنیش کش بر سر راه آپاچی بدین شکله که کل صفحه وب سایت و محتوای http توسط وارنیش کش میشود. هم صفحه ی داینامیک و هم استاتیک. وارنیش کش از زبان VCL پشتیبانی می کند. از مزایای این زبان انعطاف پذیری بالای اون هست برای تعریف policy هایی که بتونه درخواست های کاربران رو هندل کنه. برای مثال میشه پالیسی تعریف کرد که در صورت درخواست فلان محتوا نحوه ی درخواست چه طور و از کجا باشد. برای کار با وارنیش می بایست یک سری کارها انجام شود. تا قبل از وارنیش آپاچی روی پورت 80 کار میکرد و درخواست کاربرها مستقیم به سمت آپاچی می رفت. اما بعد از نصب وارنیش می بایست پورت آپاچ رو تغییر بدیم که با وارنیش کار کنه و پورت وارنیش رو به 80 تغییر بدیم. بعد از انجام این تغییرات درخواست کاربران مستقیم به وارنیش میرسه.
در مثالی که در این پست اومده وارنیش روی خود وب سرور نصب شده است. اما در صورت نیاز میتوان روی سرور جداگانه ای نصب شود. در این صورت کانفیگ فایل ها تغییر میکند. برای مثال در فایل default.vcl آدرس IP های وب سرور یا سرورهای مورد نظر را نیز بایستی اضافه کنیم.

نصب پکیج های وارنیش بر روی CentOS:
برای نصب وارنیش از دو یسته ی varnish-libs-2.0.6-1.1.x86_64.rpm و varnish-2.0.6-1.1.x86_64.rpm  استفاده کردم.





کانفیک Varnish برای کار کردن با Apache:
بعد از انجام پروسه نصب چه از طریق فایل rpmو چه source code  فایل varnish  رو در مسیر /etc/sysconfig/ ویرایش می کنیم:
البته من از فایل اصلی یه backup میگیرم!

[root@localhost user1]# cp /etc/sysconfig/varnish /etc/sysconfig/varnish.bkp

[root@localhost user1]# vi /etc/sysconfig/varnish

در این فایل چند 4 مدل کانفیگ اومده که همشون یکی هستند اما هرکدوم به یه شکلی نوشته شدند. من کانفیگ Alternative2 را انتخاب می کنم و مابقی خطوط رو با گذاشتن # کامنت می کنم.
مقدار حافظه ای که می توان به وارنیش برای کش کردن اختصاص دهیم می بایستی 70%-80% مقدار کل RAM باشد. مابقی RAM برای کارهای سیستمی درنظر گرفته شده است. مقدار مورد نظر را به malloc می بایستی اختصاص دهیم. (Memory allocation)




ویرایش کانفیگ فایل default.vcl در مسیر /etc/varnish/:
از این فایل هم یک backup میگیرم و بعد با ادیتور مورد دلخواهم (Vi) فایل رو ویرایش می کنم.

[root@localhost user1]# cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bkp

[root@localhost user1]# vi /etc/varnish/default.vcl


در این فایل نحوه ی ارتباط با آپاچ ذکر میشود و به وارنیش میگه که کجا باید بره و محتوای وب سرور رو پیدا کنه. که در این مثال پورت 8080 آپاچ هست که روی localhost وجود داره. آپاچ حالا به عنوان backend برای ما کار میکنه دیگه و همینطور varnish که به عنوان frontend هست.



کانفیگ Apache برای کار کردن با Varnish:
کانفیگ فایل آپاچ httpd.conf که در مسیر /etc/httpd/conf/httpd.conf/  قرار دارد را می بایست ویرایش کنیم. تا قبل از وارد شدن varnish آپاچ و وب سایتمون با پورت 80 کار میکردن که در حال حاضر می بایستی اون خط از کانفیگ فایل رو کامنت کنیم و پورت 8080 رو برای localhost اضافه کنیم.  در صورتیکه Virtualhost ی هم داریم پورت آن نیز می بایست تغییر کند.
*وارنیش و آپاچ روی پورت 8080 (پورت دلبخواه بزرگتر از 1024) با هم کار میکنند.
VirtualHost 127.0.0.1:8080


فعال کردن سرویس Varnish در runlevel های 3,4,5:
اصولا فعال کردن سرویس ها در runlevel به این معنیه که در زمان بوت شدن سیستم عامل بعد از هر ریست و خاموش و روشن شدنی سرویس اتوماتیک بالا بیاد! در صورتیکه سیستم عامل روی هرکردوم از runlevel ها بالا بیاد، Varnish هم جز سرویس هایی میشه که اسکریپتش در زمان بوت شدن خونده میشه. در
نتیجه نیاز به فعال کردن یا start کردن سرویس بصورت دستی نیست.

root@localhost user1]# chkconfig --level 345 varnish on

[root@localhost user1]# chkconfig --list |grep varnish

varnish 0:off 1:off 2:off 3:on 4:on 5:on 6:off


الان دیگه میتونیم سرویس های آپاچ و وارنیش رو start کنیم. در صورتیکه هرکدوم از سرویس هامون در زمان start کردنشون failed  بدن باید کانفیگ فایل ها مجدد بررسی بشه تا مشکل بوجود آمده برطرف شود.

[root@localhost user1]# service httpd restart

Stopping httpd: [ OK ]

Starting httpd: [ OK ]



[root@localhost user1]# /etc/init.d/varnish start

Starting varnish HTTP accelerator:

[ OK ]



برای اطمینان از صحت کار هرکدام از سرویس هامون با پورت خودشون از netstat کمک می گیریم:
شکل زیر نشون میده که وارنیش روی پورت 80، listen هست.



شکل زیر نشون میده سرویس آپاچمون هم داره روی 8080 کار میکنه.



همینطور به کامند زیر هم میتونیم صحت اجرای Varnish رو چک کنیم:


سرویس وارنیش فعاله و داره کار میکنه پس لاگینگش هم می بایست فعال بشه!
در حال حاضر در مسیر /var/log/varnish/ هیچ لاگ فایلی نیست. بنابراین دو تا سرویس از وارنیش رو که برای فعال کردن لاگ ها هستند رو می بایست start  کنیم.

[root@localhost user1]# ls –l /var/log/varnish/

Total 0

[root@localhost user1]#

[root@localhost user1]# /etc/init.d/varnishncsa start

Starting varnish ncsa logging daemon: [ OK ]

[root@localhost user1]# /etc/init.d/varnishlog start

Starting varnish logging daemon: [ OK ]










داغ کن - کلوب دات کام
نظرات() 

آیا لینوکس و نرم‌افزار آزاد غیر‌قانونی است؟

نویسنده :. .
تاریخ:شنبه 20 خرداد 1391-07:10 ب.ظ

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


Linux & Open Source Software Is Illegal?
Her: What system are you running?
Me: Ubuntu

Her: Huh? No, I don't mean the program, I mean your operating system.
Me: Ubuntu is the operating system.

Her: I think you're mistaken... I don't know of a system called "Ubuntu"
Me: It's derivative of Linux.

Her: You're joking, right?
Me: Umm... no.

Her: But... Linux is illegal!
Me: Huh? Who told you that?

Her: My son. He works for tech support at Microsoft.
Me: There's nothing illegal about it, a lots of people use it.

Her: No, it's illegal! It's all hacker tools to crack passwords and break into servers! You didn't use my internet with that, did you?
Me: Yeah, but I'm telling you, it's not illegal.

Her: Oh no, what if the police find out? I'll be in so much trouble! They'll think I'm a hacker! I need to call my son!

At this point, she dials her son from her cellphone. But, he doesn't answer. She is becoming increasingly distraught and I'm worried she's going to panic.

Me: If you'll calm down, I can prove to you that there's nothing illegal on my computer.

Her: Listen to me. how much did you pay for your Linux system?
Me: Nothing. It's free and open source.

Her: Exactly! Do you honestly belive that any legitimate system would be available for free?
Me: Have you ever heard of the open source community, or open source software?

Her: My son mentioned it... He said it's like a cyber-community of hackers all over the world. They share virus programs and illegal software.
Me: Your son is seriously misinformed. They write, fix, and improve on software and redistribute it to make it better and help others.

Her: That's ridiculous! How would they make money?
Me: Same as you and I.. Go to work.

Her: Not to mention, giving away software is illegal!
Me: No, giving away proprietary software is illegal. Free and open source software is software that people have written and decide to give away, and allow people to change and improve on.

Her: Don't lie to me. Do you really believe that?
Me: Well, it's true.

Her: Are you dumb? you think people just have the time to write programs without any monetary gain?
Me: Well, yeah.

Her: I want to leave. I need to figure out what to do about this. I don't want to report you to the authorities, but I will not take the fall for this. If I'm going to be arrested, I'm telling them the truth.


نوع مطلب : نرم افزار آزاد 

داغ کن - کلوب دات کام
نظرات() 

متن مصاحبه اختصاصی با ریچارد استالمن (۲۰۱۲) در linuxreview

نویسنده :. .
تاریخ:شنبه 27 اسفند 1390-08:11 ب.ظ




                              متن مصاحبه اختصاصی با ریچارد استالمن (۲۰۱۲) در linuxreview


نوع مطلب : نرم افزار آزاد 

داغ کن - کلوب دات کام
نظرات()