این مستند راهنمایی برای پیکربندی توازن بار (Load Balancing) برای سرورهای ابری با ترافیک بالا است. در این مستند، از ابزارهایی مانند Nginx و HAProxy استفاده خواهیم کرد تا نحوه تنظیم و پیکربندی توازن بار را نشان دهیم.
پیشنیازها
- چندین سرور ابری با سیستمعامل Ubuntu 20.04
- دسترسی به اینترنت
- دسترسی sudo به سرور
- نصب Nginx یا HAProxy
نصب و پیکربندی Nginx برای توازن بار
مرحله 1: نصب Nginx
ابتدا باید Nginx را بر روی سرور خود نصب کنید.
sudo apt update
sudo apt install -y nginx
مرحله 2: پیکربندی Nginx به عنوان Load Balancer
فایل تنظیمات Nginx را برای پیکربندی توازن بار ویرایش کنید.
sudo nano /etc/nginx/sites-available/load_balancer
تنظیمات زیر را در فایل وارد کنید:
upstream backend_servers {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
مرحله 3: فعالسازی تنظیمات Nginx
sudo ln -s /etc/nginx/sites-available/load_balancer /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
نصب و پیکربندی HAProxy برای توازن بار
مرحله 1: نصب HAProxy
برای نصب HAProxy، دستورات زیر را اجرا کنید:
sudo apt update
sudo apt install -y haproxy
مرحله 2: پیکربندی HAProxy
فایل تنظیمات HAProxy را ویرایش کنید.
sudo nano /etc/haproxy/haproxy.cfg
تنظیمات زیر را در فایل وارد کنید:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server backend1 backend1.example.com:80 check
server backend2 backend2.example.com:80 check
server backend3 backend3.example.com:80 check
مرحله 3: راهاندازی مجدد HAProxy
sudo systemctl restart haproxy
تست توازن بار
مرحله 1: پیکربندی تست سرورها
برای اطمینان از عملکرد توازن بار، باید سرورهای backend خود را با محتواهای متفاوت پیکربندی کنید تا بتوانید به راحتی بررسی کنید که درخواستها به درستی بین آنها تقسیم میشوند. برای این منظور، یک صفحه ساده HTML بر روی هر یک از سرورهای backend قرار دهید.
مرحله 2: ارسال درخواست به Load Balancer
با ارسال چندین درخواست به آدرس Load Balancer، میتوانید بررسی کنید که درخواستها به صورت متوازن بین سرورهای backend توزیع میشوند.
curl http://your_load_balancer_ip
نتیجهگیری
با این راهنمای مستند، شما میتوانید توازن بار را برای سرورهای ابری با ترافیک بالا با استفاده از Nginx یا HAProxy پیکربندی کنید. این سیستم به شما کمک میکند تا عملکرد و پایداری سرورهای خود را بهبود بخشید و ترافیک را به صورت کارآمد بین سرورها توزیع کنید.