انتقال وبسایت به سرور مجازی یا اختصاصی

  • ۰

انتقال وبسایت به سرور مجازی یا اختصاصی

انتقال وبسایت به سرور مجازی یا اختصاصی

مقدمه

ممکن است برای شما هم این اتفاق افتاده باشد که بخواهید سایت و یا WA خود را از هاست به یک سرور و یا از یک سرویس دهنده به یک سرور اختصاصی و یا سرور مجازی منتقل کنید. این عمل میتواند توسط شما یا یک متخصص انجام شود که در هر دو حالت بهتر است شما اطلاعات پایه ای گفته شده در این مقاله را دارا بوده و طبق این چارت عمل کنید. برای انجام این پروسه نیاز است تا اطلاعات پایه ای برای ان عملیات داشته باشید تا سرویس دهی شما بدون وقفه و یا با کمترین DownTime مواجه شود، در غیر این صورت ممکن است مشکلات بسیاری را تجربه کنید و یا حتی در  بدترین حالت با Data Lost مواجه شوید. در این مقاله سعی میکنیم بصورت کلی شما را انجام این پروسه اشنا و بصورت مختصر برخی از مفاهیم مورد نیاز را توضیح دهیم تا از سردرگمی هایی که ممکن است با ان مواجه شوید کاسته شود.

انتقال وبسایت به سرور مجازی یا اختصاصی

انتقال وبسایت به سرور مجازی یا اختصاصی

 Migration یا انتقال ممکن است دلایل متفاوتی داشته باشد:

  • هاست میزبان شما به دلیل ترافیک بازدید و مصرف منابع WA شما دیگر قادر به میزبانی سایت شما نبوده و یا سایت شما در زمان High Traffic شدن با مشکل در سرویس دهی مواجه میشود.
  • در سرور و یا هاست قبلی شما اختلال سخت افزاری ایجاد شده باشد.
  • سرویس دهنده فعلی شما امکانات مورد نیاز شما مانند ماژول های مورد نیاز یا نسخه نرم افزار های سمت سرور مورد نیاز شما را ارائه نمیدهد.
  • سرور و یا هاست شما تحت مدیریت شخص دیگری است و هم اکنون میخواهید خودتان انتقال را انجام دهید.
  • افزایش توان سرور جهت ارتقا سرویس دهی
  • مشکلات تامین امنیت و ….

یاداشت برداری

قطعا بدون کاغذ و قلم شما در هر مرحله ای با مشکل مواجه خواهید شد! مدیریت سرور کار سخت و پیچیده ای است و بر خلاف جریان فعلی که در بازار در حال انجام است باید گام به گام و با دقت دنبال شود تا از بروز مشکلات امنیتی و عدم پایداری آن در اینده کاسته شود. تمامی اهداف باید یاداشت شده بصورت یک Check List تمامی موارد یاد داشت شده انجام شود. سرور شما باید Document شده باشد تا زمانی که مدیریت ان به شخص دیگری سپرده شد شخص جدید بداند سرور چگونه کانفیگ شده است و یا زمانی که سرور با Technical Difficulty موجه شد مختصص با سردرگمی مواجه نشود بعلاوه اینکه اگر تعداد سرور های شما روند افزایشی داشت در آینده با سردرگمی مواجه نشوید. پس یادداشت برداری برای ما مهم است و نباید عملی پیش پا افتاده تلقی شود.

 مرحله اول – دلیل انتقال و Migration

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

  1. سرویس برخی مواقع با هنگ مواجه شده و نمیتواند برخی از Request ها را handle کند.
  2. سرویس در برخی از ساعات روز از دسترس خارج میشود.
  3. هاست ماژول های مورد نیاز WA را جهت توسعه ان ندارد و پشتیبانی نمیکند.
  4. زمانی که بازدید از تعداد خاصی بیشتر میشود سرعت سایت بشدت کاهش یافته و یا سایت کلا قطع میشود.
  5. سایت زیر حملات DDOS بوده و از نظر امنیتی مشکل دارد.
  6. منابع ناکافی سخت افزاری مانند پورت و یا هارد
  7. و …

مرحله دوم – نیاز های شما در سرور جدید

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

  1. تعداد بازدید روزانه بین ۷۰۰۰ تا ۱۰۰۰۰ IP است.
  2. نیاز است روی سرور TomCat نصب و کانفیگ شود.
  3. درگیری دیتابیس بیش از اندازه بوده و باید سرور HTTP و MySQL جدا باشد.
  4. هارد باید SSD باشد و مصرف هارد در سال حدودا ۵۰۰ تا ۷۰۰ گیگابایت است.
  5. سرور گاها تحت حملات سنگین DDOS است و باید بشدت DDOS Protected باشد.
  6. بحث پایداری سرور و High Availability مهم بوده و سرور به هیچ عنوان نباید از سرویس دهی خارج شود.
  7. کاربری از سرور بصورت File Server بوده و ترافیک و سرعت دانلود باید مدیریت شود.
  8. WA مورد نظر از PHP ورژن ۵٫۲ استفاده میکند و دیتابس مورد استفاده نیز MySQL نسخه ۵٫۰ میباشد.
  9. وب سرور قبلی آپاچی بوده و نیاز است تا نوع انتخاب وب سرور برسی شود.
  10. فرکانس CPU فعلی xx.xx GHz بوده و سرور نیاز به CPU قویتری دارد.
  11. روزانه بیش از ۵۰K ایمیل ارسال میشود. پیاده سازی سیاست های E-mail marketing و به حدعقل رساندن میزان اسپم.
  12. نیاز است از دیتابیس بصورت ساعتی بکاپ تهیه شود.
  13. و…

مرحله سوم – جمع بندی نهایی

در این مرحله شما باید استراتژی های مورد نیاز را انتخاب کنید. قبل از هر کاری باید کمی اطلاعات خود را افزایش دهید یا با متخصصان این زمینه مشورت نمایید. انتخاب نوع وب سرور، دیتابیس، سیستم عامل، سیاست های امنیتی، کانفیگ و مشخصات سرور و… کمی نیاز به R & D دارد و بهتر است قبل از انتخاب کمی در مورد انتخاب خود تحقیق کنید. در هر مرحله نیاز است تا شما در مورد انتخاب خود کمی مطالعه داشته باشید. اگر سرور شما Critical Mission است بهتر است با کمک یک متخصص این مراحل را انجام دهید. برای نمونه ما یک سناریو مطرح کرده و یک جم بندی در مورد نیاز های ان انجام میدهیم. با توجه به میزان بودجه خود سرور مورد نیاز را انتخاب کنید. سرور شما میتواند اختصاصی و یا مجازی باشد که انتخاب بین این دو بستگی به انتخاب شما دارد که میتوانید از فروشنده گان این امر سرور خود را تهیه نمایید. اگر میخواهید از کنترول پنل استفاده کنید باید ابتدا نوع ان را مشخص کنید، کنترل پنل ها دارای لایسنس بوده و معمولا باید قبل از نصب به فکر لایسنس ان باشید. تمامی سرویس های مورد نظر برای هاستینگ تقریبا توسط کنترل پنل نصب خواهند شد و برای نیاز های پایه تقریبا نیازی به تغییر در کانفیگ ندارند. اما برای ایجاد تغییرات در تنظیمات آپاچی و یا MySQL بهتر است Document ها و یا مقالات متنوعی را مطالعه نمایید. پس از تهیه و کانفیگ سرور بهتر است در ابتدا WA خود را منتقل کرده و صحت سرویس دهی را برسی نمایید تا مطمئن شوید سرویس دهی بدون نقص صورت میگیرد. سپس اقدام به تغییر IP و یا DNS نمایید.

یک سناریو ساده

سایتی روی هاست پشتیبانی میشود که WA ان WordPress و از دیتابیس MySQL استفاده میکند. ورژن PHP مورد نیاز ۵٫۳ یا ورژن های جدیدتر میباشد. میزان بازدید ورود روزانه بین ۵K تا ۸K بوده و به دلیل قالب بهینه و حجم سایت درگیری I/O و شبکه زیاد نمیباشد. تعداد concurrent user بین ۵۰ تا ۱۵۰ کاربر میباشد. دیتابیس کمی باعث لود CPU میشود. پس نیاز است تا با بهینه سازی دیتابیس تعدادی از Table های پر استفاده روی رم لود شود.
با توجه به نمودار بازدید، مصرف مشابه در هاست و حجم فایل های هاست راهبرد زیر اتخاذ شده است :

مشخصات سرور:

  • سی پی بو : ۲ Core 2.4GHz
  • رم : ۶ GB
  • هارد : ۲۵۰ گیگابایت
  • ترافیک ماهانه :  ۱ ترابایت
  • کارت شبکه : ۲۵۰Mbps

مشخصات نرم افزاری:

  • سیستم عامل : CentOS 6.8
  • کنترل پنل : دایرکت ادمین
  • استفاده از اپاچی به عنوان وب سرور و کانفیگ و بهینه سازی ان برای بالا رفتن سرعت لود
  • نصب و اماده سازی Mod Security
  • نصب ioncube
  • بهینه سازی دیتابیس جهت کش کردن و افزایش سرعت پاسخ دهی به Query ها
  • نصب ابزار مانیتورینگ
  • امن سازی کنترل پنل، وب سرور، PHP، سیستم عامل، نصب و کانفیگ انتی شلر، فایروال و انتی ویروس
  • نصب و کانفیگ انتی دیداس evasive روی وب سرور
  • ایمن سازی SSH
  • تست امنیت
  • پیاده سازی سیاست های بکاپ گیری داخل و یا خارج از سرور

در کانفیگ سخت افزاری و نرم افزاری بالا وب سایت مورد نظر میتواند تا حدودا ۸K بازدید کننده در کل و حدود ۱۰۰ تا ۱۵۰ کاربر concurrent داشته باشد. با افزایش کاربر همزمان کم کم لود سرور افزایش یافته و سرعت سرویس دهی کاهش چشم گیری خواهد داشت.

 

توجه داشته باشید:

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

کلام اخر

اگر در این مورد سوالی داشتید میتوانید در همین پست در بخش نظرات سوالات خود را مطرح نمایید.
این پست ممکن است در اینده تغییر کند و محتوای ان حذف و یا اضافه شود.

 

 


  • ۰

آموزش نصب Apache، MySQL و PHP بر روی سیستم عامل های لینوکس

ر این مقاله نحوه نصب وب سرور آپاچی (آخرین نسخه)، بانک اطلاعاتی مای اس کیو ال (آخرین نسخه) و پی اچ پی (آخرین نسخه) را به همراه ماژول های آن بر روی سیستم عامل های RHEL 6.4/6.3/6.2/6.1/6.0/5.9/5.8/5.6, CentOS 6.4/6.3/6.2/6.1/6.0/5.9/5.8/5.6/6.0/6.5/6.6/6.7  و  Fedora 12,13,14,15,16,17,18,19با استفاده از مخزن Remi و دستور YUM آموزش خواهیم داد.

Install LAMP

آپاچی (Apache)  چیست؟
آپاچی یک وب سرور HTTP متن باز رایگان است که بر روی تمامی توزیع های لینوکس و همچنین سیستم عامل ویندوز قابل نصب و اجراست. وب سرور آپاچی توانایی سرویس دهی به صفحات برنامه نویسی شده (.htm .php .pl .cgi .js) و موارد بسیاری دیگر را دارد. بر اساس آمارهای به دست آمده در اسفند ماه 1391 حدود65.24% دامنه های وب سایتهای توسط آپاچی سرویس دهی می شوند.

ما اس کیو ال (MySQL) چیست؟
MySQL یکی از محبوب ترین رابطهای بانک های اطلاعاتی در جهان محسوب می شود که بر روی هر نوع سروری قابل اجراست توانایی دادن دسترسی چندین کاربر به چندین بانک اطلاعاتی را داراست. MySQL به همراه Apache اجرا می شود.

پی اچ پی (PHP) چیست؟
یک زبان برنامه نویسی سرور محور متن باز رایگان است که از بهترین گزینه ها جهت گسترش صفحات وب می باشد. این مفسر قابلیت تولید سایتهای پویا (Dynamic) را داراست.

ماژول های PHP
در این آموزش قصد داریم ماژول های زیر را نصب کنیم:

MySQL (php-mysql) – A extension for PHP applications that use MySQL databases. PostgreSQL (php-pgsql) – A extension for PostgreSQL database for PHP. MongoDB (php-pecl-mongo) – A driver for MongoDB database. SQLite (php-sqlite) – Extension for SQLite Database Engine. Memcache (php-pecl-memcache) – Memcached caching daemon. Memcached (php-pecl-memcached) – Memcached caching daemon. GD (php-gd) – GD extension for PHP application to serve graphics. XML (php-xml) – XML Parser for PHP applications. MBString (php-mbstring) – Mbstring extension is used to handle multi-byte string in PHP applications. MCrypt (php-mcrypt) – A Mcrypt library for PHP scripts. APC (php-pecl-apc) – APC module used to optimize and cache PHP code. CLI (php-cli) – Command-line interface for PHP. PEAR (php-pear) – Application Repository framework for PHP. PDO (php-pdo) – Database access module for PHP applications.

مرحله اول: نصب دایرکتوری مخزن Remi

## Install Remi Repository on Fedora 19, 18, 17, 16, 15 ## rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm ## Fedora 19 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-19.rpm ## Fedora 18 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-18.rpm ## Fedora 17 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-17.rpm ## Fedora 16 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-16.rpm ## Fedora 15 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-15.rpm ## Fedora 14 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm ## Fedora 13 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-13.rpm ## Fedora 12 ## # rpm -Uvh http://rpms.famillecollet.com/remi-release-12.rpm ## Install Remi & Epel Repository on RHEL/CentOS 6.4-6.0 – 32 Bit## rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm ## Install Remi & Epel Repository on RHEL/CentOS 6.4-6.0 – 64 Bit ## rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm ## Install Remi Repository on RHEL/CentOS 5.9-5.0 – 32 Bit ## rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm ## Install Remi Repository on RHEL/CentOS 5.9-5.0 – 64 Bit ## rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

مرحله دوم: نصب Apache، MySQL و PHP

## Installing on Fedora 12, 13, 14, 15, 16, 17, 18, 19 ## # yum –enablerepo=remi install httpd mysql mysql-server php php-common ## Installing on RHEL/CentOS 5-6 ## # yum –enablerepo=remi,remi-test install httpd mysql mysql-server php php-common
مرحله سوم: نصب ماژول های PHP

## Installing on Fedora 12, 13, 14, 15, 16, 17, 18, 19 ## # yum –enablerepo=remi install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo ## Installing on RHEL/CentOS 5-6 ## # yum –enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo

مرحله چهارم: فعال/غیرفعال کردن سرویسهای Apache و MySQL

## Enable Apache and MySQL on Run-Levels ## # chkconfig –levels 235 httpd on # chkconfig –levels 235 mysqld on ## Apache Commands ## # /etc/init.d/httpd start # /etc/init.d/httpd stop # /etc/init.d/httpd status ## MySQL Commands ## # /etc/init.d/mysqld start # /etc/init.d/mysqld stop # /etc/init.d/mysqld status

مرحله پنجم: کنترل نصب Apache، MySQL و PHP
1-    یک فایل با نام phpinfo.php بسازید، موارد زیر را درون آن قرار دهید و در مسیر /var/www/html/phpinfo.php ذخیره کنید.<php phpinfo (); ?>

2-    حالا بوسیله مرورگر خود آدرس http://localhost/phpinfo.php را باز نمائید. خروجی شما مانند صفحه زیر خواهد بود.

Install LAMP

در صورتی که با مشکلی مواجه شدید در تماس گرفتن با ما تردیدی نکنید.


آخرین دیدگاه‌ها

    دسته‌ها