ಕೋರ್ಸ್ ಪ್ರಾರಂಭದ ಮುನ್ನಾದಿನದಂದು ಲೇಖನದ ಅನುವಾದವನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ
ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಎನ್ನುವುದು ಬಹು ಹೋಸ್ಟ್ಗಳಾದ್ಯಂತ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಅಡ್ಡಲಾಗಿ ಸ್ಕೇಲಿಂಗ್ ಮಾಡಲು ಸಾಮಾನ್ಯ ಪರಿಹಾರವಾಗಿದೆ ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಸೇವೆಗೆ ಪ್ರವೇಶದ ಒಂದು ಬಿಂದುವನ್ನು ಒದಗಿಸುತ್ತದೆ.
HAProxy ಸಂಪನ್ಮೂಲ ಬಳಕೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು, ಥ್ರೋಪುಟ್ ಅನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಲು, ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಸಂಪನ್ಮೂಲವನ್ನು ಓವರ್ಲೋಡ್ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಲು ಶ್ರಮಿಸುತ್ತದೆ. ಇದನ್ನು CentOS 8 ನಂತಹ ವಿವಿಧ Linux ವಿತರಣೆಗಳಲ್ಲಿ ಸ್ಥಾಪಿಸಬಹುದು, ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ನಾವು ಗಮನಹರಿಸುತ್ತೇವೆ, ಹಾಗೆಯೇ ಸಿಸ್ಟಮ್ಗಳು
HAProxy ವಿಶೇಷವಾಗಿ ಹೆಚ್ಚಿನ ಟ್ರಾಫಿಕ್ ಹೊಂದಿರುವ ವೆಬ್ಸೈಟ್ಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಬಹು-ಸರ್ವರ್ ವೆಬ್ ಸೇವಾ ಕಾನ್ಫಿಗರೇಶನ್ಗಳ ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಇದನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. CentOS 8 ಕ್ಲೌಡ್ ಹೋಸ್ಟ್ನಲ್ಲಿ HAProxy ಅನ್ನು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಆಗಿ ಹೊಂದಿಸುವ ಹಂತಗಳನ್ನು ಈ ಮಾರ್ಗದರ್ಶಿ ವಿವರಿಸುತ್ತದೆ, ಅದು ನಂತರ ನಿಮ್ಮ ವೆಬ್ ಸರ್ವರ್ಗಳಿಗೆ ಟ್ರಾಫಿಕ್ ಅನ್ನು ರವಾನಿಸುತ್ತದೆ.
ಉತ್ತಮ ಫಲಿತಾಂಶಗಳಿಗಾಗಿ ಪೂರ್ವಾಪೇಕ್ಷಿತವಾಗಿ, ನೀವು ಕನಿಷ್ಟ ಎರಡು ವೆಬ್ ಸರ್ವರ್ಗಳು ಮತ್ತು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಸರ್ವರ್ ಅನ್ನು ಹೊಂದಿರಬೇಕು. ವೆಬ್ ಸರ್ವರ್ಗಳು ಅವುಗಳ ನಡುವೆ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ಕನಿಷ್ಠ nginx ಅಥವಾ httpd ನಂತಹ ಮೂಲಭೂತ ವೆಬ್ ಸೇವೆಯನ್ನು ಚಲಾಯಿಸುತ್ತಿರಬೇಕು.
CentOS 8 ನಲ್ಲಿ HAProxy ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ
HAProxy ವೇಗವಾಗಿ ವಿಕಸನಗೊಳ್ಳುತ್ತಿರುವ ಓಪನ್ ಸೋರ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿರುವುದರಿಂದ, ಪ್ರಮಾಣಿತ CentOS ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ನಿಮಗೆ ಲಭ್ಯವಿರುವ ವಿತರಣೆಯು ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯಾಗಿರುವುದಿಲ್ಲ. ಪ್ರಸ್ತುತ ಆವೃತ್ತಿಯನ್ನು ಕಂಡುಹಿಡಿಯಲು, ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ:
sudo yum info haproxy
HAProxy ಯಾವಾಗಲೂ ಆಯ್ಕೆ ಮಾಡಲು ಮೂರು ಸ್ಥಿರ ಆವೃತ್ತಿಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ: ಎರಡು ಇತ್ತೀಚಿನ ಬೆಂಬಲಿತ ಆವೃತ್ತಿಗಳು ಮತ್ತು ಮೂರನೇ, ಹಳೆಯ ಆವೃತ್ತಿಯು ಇನ್ನೂ ನಿರ್ಣಾಯಕ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತಿದೆ. HAProxy ವೆಬ್ಸೈಟ್ನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ಇತ್ತೀಚಿನ ಸ್ಥಿರ ಆವೃತ್ತಿಯನ್ನು ನೀವು ಯಾವಾಗಲೂ ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ನಂತರ ನೀವು ಯಾವ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಬಯಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಬಹುದು.
ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ, ನಾವು ಇತ್ತೀಚಿನ ಸ್ಥಿರ ಆವೃತ್ತಿ 2.0 ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ, ಇದು ಮಾರ್ಗದರ್ಶಿ ಬರೆಯುವ ಸಮಯದಲ್ಲಿ ಪ್ರಮಾಣಿತ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಇನ್ನೂ ಲಭ್ಯವಿಲ್ಲ. ನೀವು ಅದನ್ನು ಮೂಲ ಮೂಲದಿಂದ ಸ್ಥಾಪಿಸಬೇಕಾಗಿದೆ. ಆದರೆ ಮೊದಲು, ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಕಂಪೈಲ್ ಮಾಡಲು ನೀವು ಅಗತ್ಯವಾದ ಷರತ್ತುಗಳನ್ನು ಪೂರೈಸಿದ್ದೀರಾ ಎಂದು ಪರಿಶೀಲಿಸಿ.
sudo yum install gcc pcre-devel tar make -y
ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಮೂಲ ಕೋಡ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ. ಹೊಸ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆಯೇ ಎಂದು ನೀವು ಪರಿಶೀಲಿಸಬಹುದು
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
ಡೌನ್ಲೋಡ್ ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್ಗಳನ್ನು ಹೊರತೆಗೆಯಿರಿ:
tar xzvf ~/haproxy.tar.gz -C ~/
ಅನ್ಪ್ಯಾಕ್ ಮಾಡಲಾದ ಮೂಲ ಡೈರೆಕ್ಟರಿಗೆ ಹೋಗಿ:
cd ~/haproxy-2.0.7
ನಂತರ ನಿಮ್ಮ ಸಿಸ್ಟಮ್ಗಾಗಿ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಿ:
make TARGET=linux-glibc
ಮತ್ತು ಅಂತಿಮವಾಗಿ, HAProxy ಅನ್ನು ಸ್ಥಾಪಿಸಿ:
sudo make install
HAProxy ಅನ್ನು ಈಗ ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಆದರೆ ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಕೆಲವು ಹೆಚ್ಚುವರಿ ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್ಗಳ ಅಗತ್ಯವಿದೆ. ಕೆಳಗಿನ ಸಾಫ್ಟ್ವೇರ್ ಮತ್ತು ಸೇವೆಗಳನ್ನು ಹೊಂದಿಸುವುದನ್ನು ಮುಂದುವರಿಸೋಣ.
ನಿಮ್ಮ ಸರ್ವರ್ಗಾಗಿ HAProxy ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ
ಈಗ HAProxy ನಮೂದುಗಳಿಗಾಗಿ ಕೆಳಗಿನ ಡೈರೆಕ್ಟರಿಗಳು ಮತ್ತು ಅಂಕಿಅಂಶಗಳ ಫೈಲ್ ಅನ್ನು ಸೇರಿಸಿ:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
ಬೈನರಿಗಳಿಗಾಗಿ ಸಾಂಕೇತಿಕ ಲಿಂಕ್ ಅನ್ನು ರಚಿಸಿ ಇದರಿಂದ ನೀವು ಸಾಮಾನ್ಯ ಬಳಕೆದಾರರಂತೆ HAProxy ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸಬಹುದು:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
ನಿಮ್ಮ ಸಿಸ್ಟಂಗೆ ಪ್ರಾಕ್ಸಿಯನ್ನು ಸೇವೆಯಾಗಿ ಸೇರಿಸಲು ನೀವು ಬಯಸಿದರೆ, haproxy.init ಫೈಲ್ ಅನ್ನು ಉದಾಹರಣೆಗಳಿಂದ ನಿಮ್ಮ /etc/init.d ಡೈರೆಕ್ಟರಿಗೆ ನಕಲಿಸಿ. ಫೈಲ್ ಅನುಮತಿಗಳನ್ನು ಸಂಪಾದಿಸಿ ಇದರಿಂದ ಸ್ಕ್ರಿಪ್ಟ್ ರನ್ ಆಗುತ್ತದೆ, ತದನಂತರ systemd ಡೀಮನ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ:
sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload
ಸಿಸ್ಟಮ್ ಪ್ರಾರಂಭವಾದಾಗ ಸೇವೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಪ್ರಾರಂಭಿಸಲು ಸಹ ನೀವು ಅನುಮತಿಸಬೇಕಾಗುತ್ತದೆ:
sudo chkconfig haproxy on
ಅನುಕೂಲಕ್ಕಾಗಿ, HAProxy ಅನ್ನು ಚಲಾಯಿಸಲು ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಲು ಸಹ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ:
sudo useradd -r haproxy
ಇದರ ನಂತರ, ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಸ್ಥಾಪಿಸಲಾದ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಯನ್ನು ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಬಹುದು:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ಮೇಲಿನ ಉದಾಹರಣೆ ಔಟ್ಪುಟ್ನಲ್ಲಿ ತೋರಿಸಿರುವಂತೆ ಆವೃತ್ತಿಯು 2.0.7 ಆಗಿರಬೇಕು.
ಅಂತಿಮವಾಗಿ, CentOS 8 ನಲ್ಲಿನ ಡೀಫಾಲ್ಟ್ ಫೈರ್ವಾಲ್ ಈ ಯೋಜನೆಗೆ ಸಾಕಷ್ಟು ನಿರ್ಬಂಧಿತವಾಗಿದೆ. ಅಗತ್ಯವಿರುವ ಸೇವೆಗಳನ್ನು ಅನುಮತಿಸಲು ಮತ್ತು ಫೈರ್ವಾಲ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸಿ:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
ಬ್ಯಾಲೆನ್ಸರ್ ಸೆಟಪ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿ
HAProxy ಅನ್ನು ಹೊಂದಿಸುವುದು ಸಾಕಷ್ಟು ಸರಳವಾದ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ. ಮೂಲಭೂತವಾಗಿ, ನೀವು ಮಾಡಬೇಕಾಗಿರುವುದು HAProxy ಗೆ ಅದು ಯಾವ ಸಂಪರ್ಕಗಳನ್ನು ಕೇಳಬೇಕು ಮತ್ತು ಅದನ್ನು ಎಲ್ಲಿ ರಿಲೇ ಮಾಡಬೇಕು ಎಂದು ಹೇಳುವುದು.
ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದರೊಂದಿಗೆ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ /etc/haproxy/haproxy.cfg ಅನ್ನು ರಚಿಸುವ ಮೂಲಕ ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ. ನೀವು HAProxy ಕಾನ್ಫಿಗರೇಶನ್ ಆಯ್ಕೆಗಳ ಬಗ್ಗೆ ಓದಬಹುದು
ಸಾರಿಗೆ ಪದರದಲ್ಲಿ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ (ಪದರ 4)
ಮೂಲಭೂತ ಸೆಟಪ್ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ. ಹೊಸ ಸಂರಚನಾ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ, ಉದಾಹರಣೆಗೆ ಬಳಸಿ vi ಕೆಳಗಿನ ಆಜ್ಞೆಯೊಂದಿಗೆ:
sudo vi /etc/haproxy/haproxy.cfg
ಕೆಳಗಿನ ವಿಭಾಗಗಳನ್ನು ಫೈಲ್ಗೆ ಸೇರಿಸಿ. ಬದಲಾಯಿಸಿ ಸರ್ವರ್ ಹೆಸರು ಅಂಕಿಅಂಶಗಳ ಪುಟದಲ್ಲಿ ನಿಮ್ಮ ಸರ್ವರ್ಗಳನ್ನು ಏನು ಕರೆಯಬೇಕು ಮತ್ತು ಖಾಸಗಿ_ಐಪಿ — ನೀವು ವೆಬ್ ಟ್ರಾಫಿಕ್ ಅನ್ನು ನಿರ್ದೇಶಿಸಲು ಬಯಸುವ ಸರ್ವರ್ಗಳ ಖಾಸಗಿ IP ವಿಳಾಸಗಳು. ನೀವು ಖಾಸಗಿ IP ವಿಳಾಸಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
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
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back
backend http_back
balance roundrobin
server server_name1 private_ip1:80 check
server server_name2 private_ip2:80 check
ಇದು ಟ್ರಾನ್ಸ್ಪೋರ್ಟ್ ಲೇಯರ್ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ (ಲೇಯರ್ 4) ಅನ್ನು ಪೋರ್ಟ್ 80 ನಲ್ಲಿ http_front ಲಿಸನಿಂಗ್ ಅನ್ನು ಬಾಹ್ಯವಾಗಿ ಹೆಸರಿಸುತ್ತದೆ, ಅದು ನಂತರ http_back ಹೆಸರಿನ ಡೀಫಾಲ್ಟ್ ಬ್ಯಾಕೆಂಡ್ಗೆ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡುತ್ತದೆ. ಹೆಚ್ಚುವರಿ ಅಂಕಿಅಂಶಗಳು / haproxy?stats ಅಂಕಿಅಂಶಗಳ ಪುಟವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ವಿಳಾಸಕ್ಕೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ.
ವಿವಿಧ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅಲ್ಗಾರಿದಮ್ಗಳು.
ಬ್ಯಾಕೆಂಡ್ ವಿಭಾಗದಲ್ಲಿ ಸರ್ವರ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದರಿಂದ HAProxy ಸಾಧ್ಯವಾದಾಗ ರೌಂಡ್-ರಾಬಿನ್ ಅಲ್ಗಾರಿದಮ್ ಪ್ರಕಾರ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ಗಾಗಿ ಈ ಸರ್ವರ್ಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಪ್ರತಿ ಸಂಪರ್ಕವನ್ನು ಬ್ಯಾಕೆಂಡ್ನಲ್ಲಿ ಯಾವ ಸರ್ವರ್ಗೆ ರವಾನಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಕೆಲವು ಉಪಯುಕ್ತ ಆಯ್ಕೆಗಳು ಇಲ್ಲಿವೆ:
- ರೌಂಡ್ರೊಬಿನ್: ಪ್ರತಿಯೊಂದು ಸರ್ವರ್ ಅನ್ನು ಅದರ ತೂಕಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಸರ್ವರ್ಗಳ ಸಂಸ್ಕರಣಾ ಸಮಯವು ಸಮವಾಗಿ ವಿತರಿಸಲ್ಪಟ್ಟಾಗ ಇದು ಮೃದುವಾದ ಮತ್ತು ಉತ್ತಮವಾದ ಅಲ್ಗಾರಿದಮ್ ಆಗಿದೆ. ಈ ಅಲ್ಗಾರಿದಮ್ ಡೈನಾಮಿಕ್ ಆಗಿದ್ದು, ಸರ್ವರ್ನ ತೂಕವನ್ನು ಫ್ಲೈನಲ್ಲಿ ಸರಿಹೊಂದಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
- ಲೀಸ್ಟ್ಕಾನ್: ಕಡಿಮೆ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿರುವ ಸರ್ವರ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ. ಅದೇ ಲೋಡ್ನೊಂದಿಗೆ ಸರ್ವರ್ಗಳ ನಡುವೆ ರೌಂಡ್ ರಾಬಿನ್ ಅನ್ನು ನಡೆಸಲಾಗುತ್ತದೆ. LDAP, SQL, TSE, ಇತ್ಯಾದಿಗಳಂತಹ ದೀರ್ಘಾವಧಿಯ ಅವಧಿಗಳಿಗೆ ಈ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸುವುದನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ, ಆದರೆ HTTP ಯಂತಹ ಸಣ್ಣ ಅವಧಿಗಳಿಗೆ ಇದು ತುಂಬಾ ಸೂಕ್ತವಲ್ಲ.
- ಪ್ರಥಮ: ಲಭ್ಯವಿರುವ ಸಂಪರ್ಕ ಸ್ಲಾಟ್ಗಳೊಂದಿಗೆ ಮೊದಲ ಸರ್ವರ್ ಸಂಪರ್ಕವನ್ನು ಪಡೆಯುತ್ತದೆ. ಸರ್ವರ್ಗಳನ್ನು ಕಡಿಮೆ ಸಂಖ್ಯಾತ್ಮಕ ID ಯಿಂದ ಹೆಚ್ಚಿನದಕ್ಕೆ ಆಯ್ಕೆಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಫಾರ್ಮ್ನಲ್ಲಿರುವ ಸರ್ವರ್ನ ಸ್ಥಾನಕ್ಕೆ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತದೆ. ಒಮ್ಮೆ ಸರ್ವರ್ ಮ್ಯಾಕ್ಸ್ಕಾನ್ ಅನ್ನು ತಲುಪಿದರೆ, ಮುಂದಿನ ಸರ್ವರ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
- ಮೂಲ: ಯಾವ ಸರ್ವರ್ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಮೂಲ IP ವಿಳಾಸವನ್ನು ಹ್ಯಾಶ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ಸರ್ವರ್ಗಳ ಒಟ್ಟು ತೂಕದಿಂದ ಭಾಗಿಸಲಾಗಿದೆ. ಈ ರೀತಿಯಾಗಿ, ಅದೇ ಕ್ಲೈಂಟ್ ಐಪಿ ವಿಳಾಸವು ಯಾವಾಗಲೂ ಒಂದೇ ಸರ್ವರ್ಗೆ ಹೋಗುತ್ತದೆ, ಆದರೆ ಸರ್ವರ್ಗಳು ಒಂದೇ ಆಗಿರುತ್ತವೆ.
ಅಪ್ಲಿಕೇಶನ್ ಮಟ್ಟದಲ್ಲಿ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ (ಲೇಯರ್ 7)
ನಿಮ್ಮ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನ ಭಾಗಗಳು ವಿಭಿನ್ನ ಹೋಸ್ಟ್ಗಳಲ್ಲಿ ಇರುವಾಗ ಉಪಯುಕ್ತವಾದ ಅಪ್ಲಿಕೇಶನ್ ಲೇಯರ್ (ಲೇಯರ್ 7) ನಲ್ಲಿ ರನ್ ಮಾಡಲು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು ಮತ್ತೊಂದು ಲಭ್ಯವಿರುವ ಆಯ್ಕೆಯಾಗಿದೆ. ಸಂಪರ್ಕದ ಪ್ರಸರಣವನ್ನು ಥ್ರೊಟ್ಲಿಂಗ್ ಮಾಡುವ ಮೂಲಕ ಇದನ್ನು ಸಾಧಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ URL ಮೂಲಕ.
ಪಠ್ಯ ಸಂಪಾದಕವನ್ನು ಬಳಸಿಕೊಂಡು HAProxy ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ:
sudo vi /etc/haproxy/haproxy.cfg
ನಂತರ ಕೆಳಗಿನ ಉದಾಹರಣೆಯ ಪ್ರಕಾರ ಮುಂಭಾಗ ಮತ್ತು ಬ್ಯಾಕೆಂಡ್ ವಿಭಾಗಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ:
frontend http_front
bind *:80
stats uri /haproxy?stats
acl url_blog path_beg /blog
use_backend blog_back if url_blog
default_backend http_back
backend http_back
balance roundrobin
server server_name1 private_ip1:80 check
server server_name2 private_ip2:80 check
backend blog_back
server server_name3 private_ip3:80 check
ಮುಂಭಾಗವು url_blog ಎಂಬ ACL ನಿಯಮವನ್ನು ಘೋಷಿಸುತ್ತದೆ, ಅದು /blog ನಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಮಾರ್ಗಗಳೊಂದಿಗೆ ಎಲ್ಲಾ ಸಂಪರ್ಕಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. Use_backend url_blog ಸ್ಥಿತಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಸಂಪರ್ಕಗಳನ್ನು blog_back ಹೆಸರಿನ ಬ್ಯಾಕೆಂಡ್ ಮೂಲಕ ಒದಗಿಸಬೇಕು ಮತ್ತು ಎಲ್ಲಾ ಇತರ ವಿನಂತಿಗಳನ್ನು ಡೀಫಾಲ್ಟ್ ಬ್ಯಾಕೆಂಡ್ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ.
ಬ್ಯಾಕೆಂಡ್ ಭಾಗದಲ್ಲಿ, ಕಾನ್ಫಿಗರೇಶನ್ ಸರ್ವರ್ಗಳ ಎರಡು ಗುಂಪುಗಳನ್ನು ಹೊಂದಿಸುತ್ತದೆ: http_back, ಮೊದಲಿನಂತೆ, ಮತ್ತು blog_back ಎಂಬ ಹೊಸದು, ಇದು example.com/blog ಗೆ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಿದ ನಂತರ, ಫೈಲ್ ಅನ್ನು ಉಳಿಸಿ ಮತ್ತು ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು HAProxy ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ:
sudo systemctl restart haproxy
ಪ್ರಾರಂಭದ ಸಮಯದಲ್ಲಿ ನೀವು ಯಾವುದೇ ಎಚ್ಚರಿಕೆಗಳು ಅಥವಾ ದೋಷ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸಿದರೆ, ನಿಮ್ಮ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಫೈಲ್ಗಳು ಮತ್ತು ಫೋಲ್ಡರ್ಗಳನ್ನು ನೀವು ರಚಿಸಿರುವಿರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ, ನಂತರ ಮತ್ತೆ ಮರುಪ್ರಾರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಿ.
ಸೆಟಪ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ
HAProxy ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ನಂತರ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವಾಗ, ಬ್ರೌಸರ್ನಲ್ಲಿ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಸರ್ವರ್ನ ಸಾರ್ವಜನಿಕ IP ವಿಳಾಸವನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ನೀವು ಬ್ಯಾಕೆಂಡ್ಗೆ ಸರಿಯಾಗಿ ಸಂಪರ್ಕ ಹೊಂದಿದ್ದೀರಾ ಎಂದು ಪರಿಶೀಲಿಸಿ. ಕಾನ್ಫಿಗರೇಶನ್ನಲ್ಲಿನ ಅಂಕಿಅಂಶಗಳು uri ನಿಯತಾಂಕವು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ವಿಳಾಸದಲ್ಲಿ ಅಂಕಿಅಂಶಗಳ ಪುಟವನ್ನು ರಚಿಸುತ್ತದೆ.
http://load_balancer_public_ip/haproxy?stats
ನೀವು ಅಂಕಿಅಂಶಗಳ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡಿದಾಗ, ನಿಮ್ಮ ಎಲ್ಲಾ ಸರ್ವರ್ಗಳು ಹಸಿರು ಬಣ್ಣವನ್ನು ತೋರಿಸಿದರೆ, ಸೆಟಪ್ ಯಶಸ್ವಿಯಾಗಿದೆ!
ಅಂಕಿಅಂಶಗಳ ಪುಟವು ನಿಮ್ಮ ವೆಬ್ ಹೋಸ್ಟ್ಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಕೆಲವು ಉಪಯುಕ್ತ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದರಲ್ಲಿ ಅಪ್/ಡೌನ್ ಸಮಯ ಮತ್ತು ಸೆಷನ್ಗಳ ಸಂಖ್ಯೆಯೂ ಸೇರಿದೆ. ಸರ್ವರ್ ಅನ್ನು ಕೆಂಪು ಬಣ್ಣದಲ್ಲಿ ಗುರುತಿಸಿದ್ದರೆ, ಸರ್ವರ್ ಆನ್ ಆಗಿದೆಯೇ ಮತ್ತು ನೀವು ಅದನ್ನು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಯಂತ್ರದಿಂದ ಪಿಂಗ್ ಮಾಡಬಹುದು ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ನಿಮ್ಮ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಪ್ರತಿಕ್ರಿಯಿಸದಿದ್ದರೆ, ಫೈರ್ವಾಲ್ನಿಂದ HTTP ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು HAProxy ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ:
sudo systemctl status haproxy
ಪಾಸ್ವರ್ಡ್ನೊಂದಿಗೆ ಅಂಕಿಅಂಶಗಳ ಪುಟವನ್ನು ರಕ್ಷಿಸುವುದು
ಆದಾಗ್ಯೂ, ಅಂಕಿಅಂಶಗಳ ಪುಟವನ್ನು ಮುಂಭಾಗದ ತುದಿಯಲ್ಲಿ ಸರಳವಾಗಿ ಪಟ್ಟಿಮಾಡಿದರೆ, ಅದು ಎಲ್ಲರಿಗೂ ನೋಡಲು ತೆರೆದಿರುತ್ತದೆ, ಅದು ಒಳ್ಳೆಯದಲ್ಲ. ಬದಲಾಗಿ, ನಿಮ್ಮ haproxy.cfg ಫೈಲ್ನ ಅಂತ್ಯಕ್ಕೆ ಕೆಳಗಿನ ಉದಾಹರಣೆಯನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನೀವು ಅದನ್ನು ಕಸ್ಟಮ್ ಪೋರ್ಟ್ ಸಂಖ್ಯೆಯನ್ನು ನಿಯೋಜಿಸಬಹುದು. ಬದಲಾಯಿಸಿ ಬಳಕೆದಾರ ಹೆಸರು и ಪಾಸ್ವರ್ಡ್ ಯಾವುದೋ ಸುರಕ್ಷಿತ ವಿಷಯಕ್ಕಾಗಿ:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
ಹೊಸ ಕೇಳುಗರ ಗುಂಪನ್ನು ಸೇರಿಸಿದ ನಂತರ, ಮುಂಭಾಗದ ಗುಂಪಿನಿಂದ ಹಳೆಯ ಅಂಕಿಅಂಶಗಳ uri ಲಿಂಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ. ಮುಗಿದ ನಂತರ, ಫೈಲ್ ಅನ್ನು ಉಳಿಸಿ ಮತ್ತು HAProxy ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.
sudo systemctl restart haproxy
ನಂತರ ಹೊಸ ಪೋರ್ಟ್ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಅನ್ನು ಮತ್ತೆ ತೆರೆಯಿರಿ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ನಲ್ಲಿ ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್ವರ್ಡ್ನೊಂದಿಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ.
http://load_balancer_public_ip:8181
ನಿಮ್ಮ ಎಲ್ಲಾ ಸರ್ವರ್ಗಳು ಇನ್ನೂ ಹಸಿರು ಬಣ್ಣವನ್ನು ತೋರಿಸುತ್ತಿವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ ಯಾವುದೇ ಪೋರ್ಟ್ ಸಂಖ್ಯೆಗಳಿಲ್ಲದೆ ಕೇವಲ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ IP ಅನ್ನು ತೆರೆಯಿರಿ.
http://load_balancer_public_ip/
ನಿಮ್ಮ ಬ್ಯಾಕ್-ಎಂಡ್ ಸರ್ವರ್ಗಳಲ್ಲಿ ನೀವು ಕನಿಷ್ಟ ಕೆಲವು ವೈವಿಧ್ಯತೆಯ ಲ್ಯಾಂಡಿಂಗ್ ಪುಟಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ನೀವು ಪ್ರತಿ ಬಾರಿ ಪುಟವನ್ನು ಮರುಲೋಡ್ ಮಾಡುವುದನ್ನು ನೀವು ಬೇರೆ ಹೋಸ್ಟ್ನಿಂದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪಡೆಯುವುದನ್ನು ನೀವು ಗಮನಿಸಬಹುದು. ನೀವು ಕಾನ್ಫಿಗರೇಶನ್ ವಿಭಾಗದಲ್ಲಿ ವಿಭಿನ್ನ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಪ್ರಯತ್ನಿಸಬಹುದು ಅಥವಾ ಪರಿಶೀಲಿಸಿ
ತೀರ್ಮಾನ: HAProxy ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್
ನಿಮ್ಮ HAProxy ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಹೊಂದಿಸಿದ್ದಕ್ಕಾಗಿ ಅಭಿನಂದನೆಗಳು! ಮೂಲಭೂತ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಸೆಟಪ್ನೊಂದಿಗೆ ಸಹ, ನಿಮ್ಮ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಲಭ್ಯತೆಯನ್ನು ನೀವು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು. ಈ ಮಾರ್ಗದರ್ಶಿಯು HAProxy ನೊಂದಿಗೆ ಸಮತೋಲನವನ್ನು ಲೋಡ್ ಮಾಡಲು ಕೇವಲ ಒಂದು ಪರಿಚಯವಾಗಿದೆ, ಇದು ತ್ವರಿತ ಸೆಟಪ್ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ಒಳಗೊಂಡಿರುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದೆ. ಬಳಸಿ ವಿಭಿನ್ನ ಸಂರಚನೆಗಳನ್ನು ಪ್ರಯೋಗಿಸಲು ನಾವು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ
ಹೆಡ್ರೂಮ್ನೊಂದಿಗೆ ನಿಮ್ಮ ವೆಬ್ ಸೇವೆಯನ್ನು ರಕ್ಷಿಸಲು ಬಹು ಹೋಸ್ಟ್ಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ, ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಸ್ವತಃ ಇನ್ನೂ ವೈಫಲ್ಯದ ಬಿಂದುವನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಬಹುದು. ಬಹು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ಗಳ ನಡುವೆ ತೇಲುವ IP ಅನ್ನು ಸ್ಥಾಪಿಸುವ ಮೂಲಕ ನೀವು ಹೆಚ್ಚಿನ ಲಭ್ಯತೆಯನ್ನು ಇನ್ನಷ್ಟು ಸುಧಾರಿಸಬಹುದು. ನಮ್ಮಲ್ಲಿ ನೀವು ಇದರ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಬಹುದು
ಕೋರ್ಸ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು
ಮೂಲ: www.habr.com