- فرض کنید دو سرور با آدرسهای زیر در اختیار دارید که بر روی آنها Apache2 نصب و راه اندازی و پیکربندی شده است. (یعنی پورت ۸۰ آنها پاسخگو بوده و وب سایت بالا است)
- سرور اول : 192.168.134.150
- سرور دوم : 192.168.134.151
- حال میتوان یک سرور به عنوان سرور لود بالانس در جلوی این دو سرور قرار داد
- در این صورت متقاضیانی که قصد باز کردن وب سایت را دارند، آدرس وب سرور لود بالانس را وارد می کنند.
- حال در سرور لود بالانس تصمیم گیری میشود که در خواستها به سمت کدام یک از سرورها (اول یا دوم) فرستاده شود.
- عمل لود بالانس در این سناریو با وب سرور nginx انجام میشود.
- توجه کنید که در سرور لود بالانس (با وب سرور nginx) هیچ فایل یا صفحهای میزبانی نمیشود.
- تمام مراحل بالا در سیستم عامل ubuntu 18.04 دنبال میشود.
- فرض بر این شده است که apache2 بر روی سرور اول و دوم نصب و راه اندازی شده است.
- در سرور لود بالانس ابتدا بسته ها را بروز رسانی کنید :
# apt-get update ; apt-get -y dist-upgrade
- سپس بستهی nginx را نصب کنید :
# apt-get -y install nginx
- پروندهی زیر را ایجاد کنید و آن را با یک ویرایشگر باز کنید :
# touch /etc/nginx/site-available/load-balancing.conf
- محتویات زیر را برای پروندهی بالا در نظر بگیرید :
upstream backend {
server 192.168.134.150;
server 192.168.134.151;
}
server {
listen 80 default_server;
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
}
- در صورت استفاده از دامنه، نام دامنه را به صورت زیر وارد کنید :
...
listen 80 default_server;
server_name TESTING.lan;
location / {
..
- در بخش و قسمت upstream میتوان نحوه و متد لود بالانس را مشخص کرد.
- به عنوان مثال least_conn باعث می شود تا درخواستها به سمت سروری هدایت شوند که کمترین بار و اتصال را دارد.
upstream backend {
least_conn;
server 192.168.134.150;
server 192.168.134.151;
}
- به عنوان مثال ip_hash باعث میشود تا در خواست ها به صورت استاتیک و بر اساس آدرس مبدا به سمت سرورها هدایت شوند.
upstream backend {
ip_hash;
server 192.168.134.150;
server 192.168.134.151;
}
- به عنوان مثال میتوان به هر یک از سرورها وزن اختصاص داد تا اولویت انتخاب با آن باشد. (هر چه عدد بالاتر باشد اولویت بالاتر است)
upstream backend {
server 192.168.134.150 weight=4;
server 192.168.134.151;
}
- در نهایت کافیست از پروندهی بالا یک Link ایجاد کنید :
ln -s /etc/nginx/site-available/load-balancing.conf /etc/nginx/site-enabled/load-balancing.conf
- به منظور اطمینان از صحت پروندههای کانفیگ از دستور زیر استفاده کنید :
# nginx -t
- در نهایت سرویس nginx را راه اندازی مجدد کنید :
# systemctl restart nginx
- مطالعه بیشتر در این لینک | PDF