آپاچیسرورلینوکسوب سرور

چگونه دو وب سرور آپاچی / وبسایت را به وسیله Rsync همگام سازی(sync) کنیم

در این وبسایت آموزش های زیادی برای mirror کردن و یا بک آپ گرفتن از دیتای وب سایت شما با روش های متفاوت وجود دارد. اما من این مقاله رو نوشتم فقط برای اینکه این کار رو یه بار دیگه اما اینبار کاملا متفاوت با روش های جدید (البته از نظر خودم) با یک سری کامند (دستورات) ساده و دستورات کلی لینوکس برای ساختن بک آپ از وبسایت خودمون، این آموزش به شما کمک می کند تا دیتای رو بین دو وب سرور همگام سازی کنید توسط “Rsync”.

 

Sync-Apache-Server2
همگام سازی دو آپاچی وب سرور

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

 

سینک وب سرور

مزایای همگام سازی وب سرور ها

  • ویژگی های مطرح استفاده rsync جهت ایجاد سرور بک آپ به صورت زیر است:
  • آر سینک تنها آن دسته از بایت ها(bytes) و بلاک هایی(blocks) که تغییر کرده اند را همگام سای(sync) می کند.
  • آر سینک توانایی بررسی و پاک کردن آن دسته از فایل ها و دایرکتوری هایی که در سرور اصلی پاک شده اند را در سرور بک آپ دارد.
  • مراقب از پرمیژن ها(permissions), مالکیت ها(ownerships) و ویژگی های خاص(special attributes) طول می کشد در حالی که دیتا از راه دور کپی می شود.
  • همچنین از پروتوکول SSH جهت جابجایی دیتا به روش رمز نگاری شده پشتیبانی می کند, بنابراین شما می توانید اطمینان حاصل کنید که تمام دیتا امن هست.
  • آر سینک(Rsync) همچنین از قابلیت فشرده سازی (compression) و خارج کردن از حالت فشرده (decompression) در زمان جابجایی دیتا پشتیبانی می کند که باعث کاهش مصرف پهنای باند در هنگام جابجایی می شود.

چگونه دو وب سرور را با هم همگام سازی کنیم
اجازه بدین به نصب rsync برای ایجاد یک mirror از وب سرورتون بپردازیم. در اینجا ما از دو وب سرور استفاده می کنیم.

Main Server

IP Address: 192.168.0.100
Hostname: webserver.example.com

Backup Server

IP Address: 192.168.0.101
Hostname: backup.example.com

مرحله اول: نصب ابزار Rsync

در این حالت ما می خواهیم که webserver.example.com را با backup.example.com همگام سازی (mirror) کنیم. و جهت انجام این کار برای بار اول باید ابتدا ما با کمک دستورات زیر به نصب Rsync بر روی هر دو سرور بپردازیم.

مرحله دوم: ایجاد یک یوزر برای اجرای Rsync

ما می توانیم که Rsync را با کاربر ریشه (root) راه اندازی کنیم، اما به دلایل امنیتی، شما می توانید یک کاربر که دارای دسترسی های زیادی نیست بر روی وب سرور اصلی ایجاد کنید، به عنوان مثال webserver.example.com برای اجرای rsync.

در اینجا من یک کاربر با نام “favach” ایجاد کرده ام و یک پسورد به آن اختصاص داده ام.

مرحله سه: تست Rsync نصب شده

زمان آن رسیده است که rsync نصب شده بر روی سرور بک آپ (به عنوان مثال backup.example.com) را تحت آزمایش قرار دهیم و برای انجام اینکار لطفا دستور زیر را تایپ کنید.

 

نمونه خروجی

خب شما در اینجا می توانید مشاهده کنید rsync به خوبی کار می کند و دیتا را sync می کند. من برای جابجایی از “/var/www” استفاده کردم، شما می توانید مکان فولدر خودتون را با توجه به نیازتان خودتان تغییر دهید.

مرحله چهار: همگام سازی (sync) خودکار با استفاده از ssh بدون استفاده از پسورد

خب تا این مرحله ما rsync را راه اندازی کرده ایم و زمان آن رسیده است که یک cron برای rsync تنظیم کنیم. اگر ما بخواهیم rsync را به همراه پروتکل ssh استفاده کنیم، ssh برای authentication از شما سوال می پرسد و اگر برای آن پسوردی وارد نکنیم فرآیند cron کار نخواهد کرد. و برای آنکه cron ما به درستی کار کند، ما نیاز داریم که از پروتکل ssh جهت sync کردن به صورت passwordless استفاده نماییم.

در این مثال من از کاربر ریشه (root) استفاده کرده ام، به جهت آنکه مالکیت های فایل ها (ownerships) آنها به خوبی حفظ شود، البته شما می توانید از هر کاربر دیگر استفاده نمایید.

در ابتدا با کمک دستورات زیر در ابتدا ما یک کلید public و private در سرور بک آپ خود ایجاد می کنیم (برای مثال backup.example.com).

زمانی که شما این دستورات را وارد کردید، لطفا در زمان درخواست پسورد عبارتی را وارد نکنید و آن را با یک enter به صورت خالی رها کنید، بنابراین کرون rsync شما نیاز به هیچگونه پسوردی جهت همگام سازی دیتا(sync) کردن نخواهد داشت.

نمونه خروجی

حالا کلید عمومی (Public) و خصوصی (Private) ایجاد شده است و ما آن را با سرور اصلی به اشتراک می گذاریم تا در هنگام sync کردن دیتا توسط سرور بک آپ، سرور اصلی آن را بشناسد و به آن اجاز لاگین بدون وارد کردن پسورد را بدهد.

حالا سعی کنید که توسط ssh به سرور وارد شوید توسط “ssh ‘root@webserver.example.com‘” و .ssh/authorized_keys را بررسی کنید.

خب تا این مرحله ما کلید را به اشتراک گذاشتیم بین دو سرور، و اگر تمایل دارید که در این زمینه (SSH password less login) مطالعه بیشتری داشته باشید می توانید از مطالب مفید لینک زیر بهره ببرید.

مرحله پنج: تنظیم Cron جهت همگام سازی دیتا (Sync)

اجازه بدهید که یک Cron را برای این کار در این مرحله تنظیم کنیم. جهت تنظیم Cron لطفا فایل Crontab را با کمک دستورات زیر باز کنید.

دستور فوق فایل مسیر /etc/crontab را جهت ادیت با ادیتور دیفالت سرور شما باز می کند. در این مثال، من یک cron را نوشته ام که هر ۵ دقیقه یک بار جهت sync کردن دیتا اجرا شود.

کرون بالا و دستور Rsync به سادگی به همگام سازی “/var/www/” از سرور اصلی  به سرور بک آپ در هر ۵ دقیقه می پردازد. شما می توانید زمان این همگام سازی (Sync) کردن و مکان آنرا با توجه به نیاز خودتون تغییر دهید. در صورتی که تمایل به کارهای خلاقانه تر با Rsync بزنید می توانید از لینک های زیر بهره ببرید.

نویسنده: حامد چوبین

هرگونه کپی برداری تنها با ذکر منبع بلامانع می باشد.

منبع: بلاگ فاواچ

برچسب ها

حامد چوبین

I'm Hamed Choobin, living in I.R.Iran-Qom experiencing Linux OSs since 2010, and has experiences with RedHat Enterprise Linux (RHEL) ,Community Enterprise OS (CentOS) ,Debian,Ubuntu.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا
بستن