آموزش کانفیگ وارنیش کش با کمک SSL Termination

آموزش کانفیگ وارنیش کش با کمک SSL Termination

این مقاله چگونگی استفاده از وارنیش کش ۴٫۰ برای بهبود عملکرد وب سرور را پوشش خواهد داد. ما همچنین به شما نشان میدهیم چگونه میتوان به کمک Nginx امکان استفاده از HTTPS و SSL را در Varnish فراهم ساخت . فرض می کنیم که شما در حال حاضر یک وب سرور تنظیم شده دارید و ما در این آموزش برای شروع کار از یک سرورLAMP (لینوکس، آپاچی، MySQL، PHP) استفاده می کنیم.

وارنیش کش یک کش کننده HTTP به صورت پروکسی معکوس یا شتاب دهنده HTTP است که باعث کاهش مدت زمان پاسخگویی به درخواست کاربران خواهد شد. روش اصلی آن کش کردن پاسخ های یک وب سرور در حافظه است، بطوریکه به درخواست های آتی برای همان محتوا بدون نیاز به بازیابی آن از وب سرور، پاسخ خواهد داد. عملکرد می تواند تا حد زیادی در محیط های مختلف بهبود یابد و این امر به ویژه زمانی مفید خواهد بود که شما از برنامه کاربردی وب dynamic با محتوای سنگین استفاده کنید.

در بسیاری از موارد، وارنیش کش با تنظیمات پیش فرض به خوبی کار می کند اما به خاطر داشته باشید که برای استفاده از آن در کنار برنامه های کاربردی خاص ،به ویژه برنامه هایی که از کوکی استفاده میکنند باید تنظیماتی انجام شود.

پیش نیازها

در این آموزش، فرض میکنیم که شما در حال حاضر وب سروری دارید که به HTTP (پورت ۸۰) در آدرس IP خصوصی گوش میکند . در صورتی که هنوز وب سرور خود را راه اندازی نکرده اید، برای راه اندازی LAMP از لینک زیر استفاده کنید. (LAMP_VPS)

https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04

آموزش کانفیگ وارنیش کش با کمک SSL Termination

آموزش کانفیگ وارنیش کش با کمک SSL Termination

برای نصب و راه اندازی وارنیش کش باید یک vps جدید مبتنی بر لینوکس اوبونتو ۱۴٫۰۴ و با تکمیل مراحل ۱ تا ۴ مقاله راه اندازی اولیه سرور اوبونتو ۱۴٫۰۴،یک کاربر غیر روت با مجوز sudo ایجاد کنید. (Varnish_VPS)

در نظر داشته باشید که سرور وارنیش دریافت کننده ی درخواست کاربران خواهد بود و باید متناسب با حجم ترافیک مورد انتظار شما باشد.

هدف آموزش

آموزش کانفیگ وارنیش کش با کمک SSL Termination

آموزش کانفیگ وارنیش کش با کمک SSL Termination

هدف ما، راه اندازی وارنیش کش در مقابل وب سرور است ، بطوریکه پاسخگوئی به درخواست ها سریع تر و کارآمد تر انجام شود. پس از انجام تنظیمات کش، چگونگی استفاده از HTTPS در وارنیش را با استفاده از Nginx به منظور هندل کردن درخواست های دریافتی SSL ، آموزش خواهیم داد.

روش توصیه شده برای دریافت آخرین نسخه وارنیش کش ۴٫۰ ، نصب پکیج از طریق مخزن رسمی می باشد.

دستور زیر را در Varnish_VPS اجرا کنید:

 

حالا Varnish GPG key را به apt اضافه کنید:

 

سپس مخزن وارنیش ۴٫۰ را به لیست سورس های apt  خود اضافه کنید:

 

در نهایت، با اجرای دستورات زیر apt-get را آپدیت و وارنیش را نصب کنید:

 

وارنیش به طور پیش فرض به گونه ای تنظیم شده که به پورت ۶۰۸۱ گوش کرده و پیش بینی میکند که وب سرور شما بر روی همان سرور قرار گرفته است و به پورت ۸۰۸۰ گوش میکند . در آدرس بار مرورگر خود، آدرس زیر تایپ کرده و  وارد پورت ۶۰۸۱ سرور خود شوید. (IP آدرس یا دامین خود را جایگزین متن قرمز رنگ کنید):

http://varnish_VPS_public_IP:6081

از آنجایی که وارنیش بر روی VPS جدید نصب شده است ، هنگام بازدید از پورت ۶۰۸۱ بر روی IP آدرس یا دامین سرور خود، با خطای زیر روبرو خواهید شد:

آموزش کانفیگ وارنیش کش با کمک SSL Termination

آموزش کانفیگ وارنیش کش با کمک SSL Termination

این نشان می دهد که وارنیش نصب شده و در حال اجرا است، اما نمی تواند وب سروری که آن را کش می کند بیابد . برای استفاده از وب سرور باید تنظیمات آن تغییر کند .

آموزش کانفیگ وارنیش کش با کمک SSL Termination

کانفیگ و پیکربندی وارنیش:

ابتدا باید وارنیش را برای استفاده از LAMP_VPS پیکربندی کنیم:

فایل کانفیگ وارنیش را که در مسیر /etc/varnish/default.vcl واقع شده است ، ویرایش کنید :

 

خطوط زیر را پیدا کنید :

 

و مقادیر هاست و پورت را مطابق با آدرس IP خصوصی سرور LAMP و پورت listening تغییر دهید. توجه داشته باشید که ما فرض می کنیم برنامه تحت وب شما به آدرس IP خصوصی خود و پورت ۸۰ گوش می کند. در غیر اینصورت، تنظیمات باید مطابق با نیاز شما تغییر یابد:

 

 وارنیش یک ویژگی به نام ” “grace mode دارد . در صورت فعال شدن آن ، در هنگام down و غیر قابل دسترس شدن وب سرور، وارنیش یک کپی از صفحات درخواستی ارائه خواهد داد. برای فعال کردن این ویژگی بلوک sub vcl_backend_response را پیدا کرده ، و خطوط قرمز رنگ زیر را به آن اضافه کنید:

 

تنظیم کردن مدت grace بر روی یک ساعت ( ۱h ) بدان معناست که اگر وارنیش برای دسترسی به نسخه جدید صفحات، به وب سرور دسترسی نداشته باشد، حداکثر تا یک ساعت به ارائه نسخه کپی شده صفحات ادامه خواهد داد . هنگامی که شما در حال حل مشکل سرور هستید ، محتوای قدیمی صفحات به جای صفحات خطا ( برای مثال خطای ۵۰۳ ) به کاربران ارائه میشود.

تغییرات را ذخیره کرده و از فایل default.vcl خارج شوید.

اگر میخواهید کاربران بدون اضافه کردن پورت های غیر معمول به  URL  سایت شما، به آن دسترسی داشته باشند باید با ویرایش فایل /etc/default/varnish  وارنیش رو به گونه ای تنظیم کنید که به پورت ۸۰ (پورت پیش فرض HTTP ) گوش کند :

 

شما خطوط زیادی را مشاهده میکنید که از حالت کامنت خارج شده اند ، خط DAEMON_OPTS را پیدا کنید (که باید به صورت uncomment باشد )

 

از گزینه –a برای تعیین آدرس و پورتی که وارنیش برای درخواست ها به آن گوش میکند استفاده میشود . پورت را به ۸۰ تغییر دهید :

 

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

 

آدرس زیر را در مرورگر خود تایپ کنید :

 http://varnish_VPS_public_IP

شما باید صفحه ای را مشاهده کنید که توسط LAMP_VPS شما ارائه میشود. در این آموزش ، یک صفحه Apache2 Ubuntu ساده نمایش داده خواهد شد :

آموزش کانفیگ وارنیش کش با کمک SSL Termination

آموزش کانفیگ وارنیش کش با کمک SSL Termination

تنظیمات اولیه به پایان رسید ، اکنون میتوانید با استفاده از Nginx ، SSL را اضافه کنید .

پشتیبانی SSL با کمک Nginx ( اختیاری ) :

وارنیش از SSL termination پشتیبانی نمی کند ، بنابراین Nginx را تنها به هدف هندلینگ ترافیک HTTPS نصب می کنیم. برای کسب اطلاعات بیشتر از راه اندازی یک گواهی SSL با Nginx به لینک زیر مراجعه کنید:

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-nginx-for-ubuntu-14-04

نصب و راه اندازی Nginx

Nginx را با استفاده از دستور apt روی Varnish_VPS نصب کنید :

 

پس از پایان نصب خواهید دید که Nginx اجرا نمیشود چراکه به طور پیش فرض به گونه ای پیکربندی شده که به پورت ۸۰ گوش کند اما در حال حاضر وارنیش از این پورت استفاده میکند . باید این پورت را به پورت پیش فرض HTTPS  یعنی پورت ۴۴۳ تغییر دهید .

ایجاد گواهی SSL

در Varnish_VPS یک دایرکتوری ایجاد کنید که گواهی SSL در آن قرار بگیرد :

 

یک گواهی ssl و یک SSL key  ۲۰۴۸- bit ایجاد کنید:

 

اطمینان حاصل کنید که common name را با نام دامین خود ست کرده اید. این گواهی خاص پس از یک سال به پایان میرسد.

تنظیمات Nginx

بلوک پیکربندی پیش فرض سرور Nginx را ویرایش کنید:

 

تمام محتوای این فایل را حذف و موارد زیر را جایگزین کنید (و SERVER_NAME را مطابق با نام دامنه خود تغییر دهید):

 

تغییرات را ذخیره کرده و خارج شوید. تنظیمات فوق دارای چند خط مهم است که با جزئیات بیشتر توضیح خواهیم داد:

 ssl_certificate: محل گواهی SSL را مشخص می کند

 sslcertificatekey: محل SSL key را مشخص می کند

listen 443 ssl : این خط Nginx را پیکربندی میکند که به پورت ۴۴۳ گوش کند

 SERVER_NAME: نام سرور را مشخص میکند و باید با common name گواهی SSL شما مطابقت داشته باشد.

proxy_pass http://127.0.0.1:80; : ترافیک را به وارنیش ریدایرکت میکند .

خطوط proxy_set_header مشخص میکند که Nginx اطلاعاتی مانند IP آدرس کاربر اصلی به همراه درخواست کاربران را فوروارد کند.

با اجرای Nginx ، سرور می تواند درخواست های HTTPS را هندل کند.

 

اکنون با تایپ آدرس زیر در مرورگر ، به سرور وارنیش مراجعه کنید :

https://varnish_VPS_public_IP

کانفیگ بک اند وب سرور:

اگر بخش بک اند وب سرور شما به تمام شبکه ها (به عنوان مثال شبکه های عمومی و خصوصی)، متصل باشد باید تنظیمات وب سرور را به گونه ای تغییر دهید که فقط به رابط خصوصی گوش کند. اینکار از دسترسی مستقیم کاربران به بک اند وب سرور از طریق آدرس IP عمومی جلوگیری میکند.

رفع اشکلات وارنیش:

اگر وارنیش در ارائه درست صفحات دچار مشکل شده باشد، با استفاده از چند دستور میتوانید از عملکرد آن مطلع شوید :

در صورتی  می خواهید بدانید که مراحل کش و ذخیره به خوبی انجام شده است، دستور زیر را اجرا کنید :

 

صفحه ای مانند تصویر زیر مشاهده خواهید کرد :

آموزش کانفیگ وارنیش کش با کمک SSL Termination

آموزش کانفیگ وارنیش کش با کمک SSL Termination

آمارهای زیادی را به همراه شرح کوتاهی از آنها ،  در این صفحه مشاهده خواهید کرد . آمار cache_hit نشان میدهد که یک نتیجه کش شده ، برای چه تعداد درخواست ارائه شده است . در صورت امکان بهتر است این عدد نزدیک به تعداد کل درخواست ها (client_req ) باشد.

با فشردن کلید q از صفحه آمار خارج شوید .

اگر می خواهید از چگونگی هندل کردن هر درخواست توسط وارنیش یک نمای دقیق بدست آورید ، از دستور زیر استفاده کنید:

 

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

با فشردن کلید CTRL + C از صفحه آمار خارج شوید .

نتیجه

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

پاسخ به کلیه سوالات شما در زمینه وب هاستینگ و مدیریت سرور در انجمن کامپایلر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *