شعار همیشگی: حفظ مشتریان فعلی ، دعوت از مشتریان قبلی ، جذب مشتریان آتی.
جشنواره فروش
همواره تخفیف
نصب و راه اندازی HAProxy در Ubuntu 16.04
نصب و راه اندازی HAProxy در Ubuntu 16.04
با شما هستیم با آموزش نصب و راه اندازی HAProxy در Ubuntu 16.04 در خدمت شما خواهیم بود تا انتهای این مطلب ما را همراهی کنید. و یا با محیط آن آشنا گردید به مطالعه این مطللب بپردازید.
بکاپ منظم روزانه هفتگی ماهانه در یک سرور مجزا از مزیت نگارنوین نسبت به سایرین می باشد.
شرکت نگارنوین با همت بهترین کارشناس های قوی به شما کاربران و مشتریهای عزیز خدمت رسانی میکند تا هرچه آسان تر و بهتر به درخواست های خود برسید.
درباره HAProxy
HAProxy یا همان High Availability Proxy ، یک نرمافزار Open Source یا منبع باز جهت متعادل کردن بار یا همان Loan Balancer است که توانایی تعادل برای هر نوع سرویس TCP را داراست؛ بهخصوص پروتوکل HTTP با پشتیبانی از لایه ۷ شبکه.
مقدمه
برای این آموزش شما به ۳ سرور مجازی احتیاج خواهید داشت.
Server 1 – Load Balancer
Hostname: haproxy
OS: Ubuntu Public IP: 1.1.1.1 Private IP: 10.0.0.100
Server 2 – Node 1
Hostname: lamp1
OS: LAMP on Ubuntu Private IP: 10.0.0.1
Server 2 – Node 2
Hostname: lamp2
OS: LAMP on Ubuntu Private IP: 10.0.0.2
نصب و راه اندازی HAProxy در Ubuntu 16.04
جهت نصب بهراحتی میتوان از دستور (apt-get) استفاده کرد:
apt-get install haproxy
سپس نیاز است تا اجرای اتوماتیک نرمافزار را پس از بوت شدن سیستم فعال کرد:
nano /etc/default/haproxy
در این مرحله (ENABLED) را برابر ۱ قرار میدهیم:
ENABLED=1
جهت بررسی صحت عملکرد دستور (Init) را برای سرویس HAProxy اجرا میکنیم:
root@haproxy:~# service haproxy
Usage: /etc/init.d/haproxy {start|stop|reload|restart|status}
تنظیمات HAProxy
فایل تنظیمات اولیه را حذف میکنیم و یک فایل خالی برای تنظیمات میسازیم:
mv /etc/haproxy/haproxy.cfg{,.original}
nano /etc/haproxy/haproxy.cfg
جهت تکمیل فایل تنظیمات، آنرا بهصورت بلاک به بلاک تکمیل خواهیم کرد:
global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy
خط مربوط به (log) جهت مشخص کردن لاگ سرور برای ارسال اطلاعات است.
در خط مربوط به maxconn ، تعداد کانکشنهای همزمان را مشخص کنید که بهصورت پیش فرض عدد ۲۰۰۰ است. این عدد بسته به توان سرور شما متغییر است.
خطوط (user , group) مشخصکنندهی مجوز اجرایی HAProxy تحت این نام و گروه است، این متغیر را تغییر ندهید.
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect ۵۰۰۰
timeout client ۱۰۰۰۰
timeout server ۱۰۰۰۰
در این بخش تنظیمات پیش فرض را اعمال میکنیم.
گزینهی connect تعیینکنندهی زمان اتمام اعتبار ارتباط است؛ همچنین زمانهای مربوط به (client , server) نیز هر کدام تعیین میکنند که در چه زمانی acknowledge اطلاعات ارسال شده منقضی شوند. HAProxy پیشنهاد میکند که این ۲ مقدار با هم برابر باشند.
(Retries) مشخصکنندهی تعداد تلاشها برای برقراری ارتباط پس از قطع ارتباط به صورت اتفاقی است.
(option redispatch) تعیینکنندهی توضیع ارتباط در صورت از مدار خارج شدن یک سرور است.
listen appname 0.0.0.0:80
mode http
stats enable
stats uri /haproxy?stats
stats realm Strictly\ Private
stats auth A_Username:YourPassword
stats auth Another_User:passwd
balance roundrobin
option httpclose
option forwardfor
server lamp1 10.0.0.1:80 check
server lamp2 10.0.0.2:80 check
این بخش تنظیمات هر دو سمت ارتباط را مشخص میکند. HAProxy بر روی پورت ۸۰ تنظیم شده است و (appname) نمایانگر نام برنامه است. گزینههای (state) برای احراز هویت بر روی بستر HTTP است.
برای مشاهده وضعیت سلامت خود HAProxy، لینک مشخص شده (http://1.1.1.1/haproxy?stats;) را ببنید.
گزینهی balance مشخصکنندهی الگوریتم بالانسینگ است. بقیهی گزینهها عبارتند از:
- Round Robin (roundrobin)
- Static Round Robin (static-rr)
- Least Connections (leastconn)
- Source (source)
- URI (uri) and URL parameter (url_param)
اطلاعات تکمیلی در رابطه با الگوریتمها در مستندات رسمی وجود دارند.
مشخصات سرور نمایانکنندهی سرورهای پاسخگو به ارتباطها هستند.
server
[:port] [param*]نام مشخص شده در اینجا در لاگها ظاهر میشود و پارامتر check بیانگر بررسی سلامت سرور توسط HAProxy جهت ارسال اطلاعات است. درصورت فقدان کلمه check سلامت سرور همیشه تاییدشده است.بعد از تنظیمات اولیه، سرویس را ریست کنید.service haproxy startبررسی HAProxy
برای تست یک فایل PHP با اطلاعات زیر را در تمام سرورها ایجاد میکنیم.
/var/www/file.php
هماکنون فایل را با (curl) چندبار درخواست میکنیم.
> curl http://1.1.1.1/file.php
Server IP: 10.0.0.1
Client IP: 10.0.0.100
X-Forwarded-for: 117.213.X.X
> curl http://1.1.1.1/file.php
Server IP: 10.0.0.2
Client IP: 10.0.0.100
X-Forwarded-for: 117.213.X.X
> curl http://1.1.1.1/file.php
Server IP: 10.0.0.1
Client IP: 10.0.0.100
X-Forwarded-for: 117.213.X.X
به روش (Round Robin) در ارائه اطلاعات توجه کنید. ببینید چگونه ۲ سرور موجود بهترتیب به درخواست ما پاسخ میدهند.
در ادامه یک سرور را از مدار خارج میکنیم تا رفتار HAProxy را بررسی کنیم.
lamp1@haproxy:~#service apache2 stop
مجدداً با (Curl) چند درخواست ارسال کنید تا عمکرد HAProxy برای شما محرز شود.