Table of Contents
!/bin/bash
Home Operation and Maintenance Linux Operation and Maintenance How to use Linux for network load balancing

How to use Linux for network load balancing

Jun 18, 2023 pm 06:45 PM
linux load balancing Network load balancing configuration ipvs load balancing

Network load balancing is a method of evenly distributing network traffic to different servers, thereby improving the availability and performance of the entire system. The Linux system comes with some tools that can help us achieve network load balancing. This article will introduce how to use Linux for network load balancing.

1. The basic principle of Linux network load balancing

The basic principle of network load balancing is to distribute network traffic to multiple servers. There are many distribution methods, including polling method, weighted polling method, IP hashing method, minimum number of connections method, etc.

In Linux, we can use LVS (Linux Virtual Server) technology for network load balancing. LVS is a technology that distributes network traffic to multiple servers. It consists of a scheduler (also called a load balancer) and multiple backend servers.

2. Install and configure LVS

  1. Installing LVS

Before configuring LVS, we need to install the necessary software packages, including ipvsadm, keepalived, these packages can be installed through the yum command.

① Install ipvsadm

Use the following command to install the ipvsadm package:

sudo yum install ipvsadm -y

② Install keepalived

Use the following command to install the keepalived package:

sudo yum install keepalived -y

  1. Configure LVS

Before proceeding with LVS configuration, we need to know a few things Basic concept:

  • Scheduler (load balancer): used to receive network requests from clients and forward the requests to the back-end server.
  • Listening IP address: The IP address accessed by the client.
  • Real server (backend server): handles client network requests.

The following is a configuration example of LVS, assuming that our scheduler IP address is 192.168.1.1 and the backend server IP addresses are 192.168.1.2 and 192.168.1.3.

① Configure the scheduler

First, install and configure the keepalived service on the scheduler. Edit the /etc/keepalived/keepalived.conf file and add the following configuration:

! Configuration File for keepalived

global_defs {
router_id LB_Test
}

vrrp_script chk_http_port {
script "/etc/keepalived/check.sh"
interval 2
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 50
priority 101
authentication {

   auth_type PASS
   auth_pass 1111
Copy after login

}
virtual_ipaddress {

   192.168.1.100
Copy after login

}
track_script {

   chk_http_port
Copy after login

}
}

Among them, vrrp_instance is used to set the parameters of the virtual router, virtual_router_id is used to set the ID of the virtual router, virtual_ipaddress is used to set the virtual IP address, and priority is used to set the master-backup relationship. The smaller the number, the higher the priority.

Then, create a script file named check.sh to check whether the backend server is alive. Save the following script content to the check.sh file:

!/bin/bash

A=ipvsadm -ln | grep -c "Server"
if [ $A -eq 0 ];then
echo "failed"
killall keepalived
fi

Description: When the backend server is unavailable, the script will terminate the keepalived service.

Execute the following command to make the configuration file take effect:

sudo systemctl restart keepalived

At this point, the configuration of the scheduler is completed.

② Configure the back-end server

Configure the Real Server of LVS on the back-end server.

Use the following command to add Real Server configuration:

sudo ipvsadm -A -t 192.168.1.100:80 -s rr

Among them, the -A option is used to add rules, -t is used to set the listening IP address and port, -s is used to set the scheduling rules, and the polling method is used here.

Add the Real Server to the rule using the following command:

sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2 -g
sudo ipvsadm -a -t 192.168 .1.100:80 -r 192.168.1.3 -g

Among them, the -a option is used to add Real Server to the rule, -r is used to set the IP address of the backend server, and -g is used to set the backend server gateway mode.

At this point, the configuration of LVS is completed.

3. Test network load balancing

After completing the configuration of LVS, we can test the network load balancing function through the following steps:

  1. Pass on the client The curl command accesses the virtual IP address:

curl 192.168.1.100

  1. After processing by the scheduler, the request is sent to one of the back-end servers.
  2. Start a simple HTTP service on one of the backend servers:

python -m SimpleHTTPServer 80

  1. Then access the IP address of the real server :

curl 192.168.1.2

  1. Send the request to the virtual IP address again. At this time, the request should be sent to another real server.

After the above test, if when accessing the back-end server, the requests can be evenly distributed to different back-end servers, then the network load balancing can be said to be successful.

4. Summary

This article introduces how to use Linux for network load balancing. We install the ipvsadm and keepalived software packages, configure the IP address, port and scheduling rules of the scheduler and back-end server, and finally test the network load balancing function. Network load balancing can improve the availability and performance of the entire system and help handle network requests in high-concurrency environments, thereby improving user experience.

The above is the detailed content of How to use Linux for network load balancing. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Tutorial on finding keywords for common Linux commands Tutorial on finding keywords for common Linux commands Mar 05, 2025 am 11:45 AM

This tutorial demonstrates efficient keyword searching in Linux using the grep command family and related tools. It covers basic and advanced techniques, including regular expressions, recursive searches, and combining commands like awk, sed, and xa

Work content of Linux operation and maintenance engineers What does Linux operation and maintenance engineers do? Work content of Linux operation and maintenance engineers What does Linux operation and maintenance engineers do? Mar 05, 2025 am 11:37 AM

This article details the multifaceted role of a Linux system administrator, encompassing system maintenance, troubleshooting, security, and collaboration. It highlights essential technical and soft skills, salary expectations, and diverse career pr

How do I configure SELinux or AppArmor to enhance security in Linux? How do I configure SELinux or AppArmor to enhance security in Linux? Mar 12, 2025 pm 06:59 PM

This article compares SELinux and AppArmor, Linux kernel security modules providing mandatory access control. It details their configuration, highlighting the differences in approach (policy-based vs. profile-based) and potential performance impacts

How do I back up and restore a Linux system? How do I back up and restore a Linux system? Mar 12, 2025 pm 07:01 PM

This article details Linux system backup and restoration methods. It compares full system image backups with incremental backups, discusses optimal backup strategies (regularity, multiple locations, versioning, testing, security, rotation), and da

How do I use regular expressions (regex) in Linux for pattern matching? How do I use regular expressions (regex) in Linux for pattern matching? Mar 17, 2025 pm 05:25 PM

The article explains how to use regular expressions (regex) in Linux for pattern matching, file searching, and text manipulation, detailing syntax, commands, and tools like grep, sed, and awk.

How do I monitor system performance in Linux using tools like top, htop, and vmstat? How do I monitor system performance in Linux using tools like top, htop, and vmstat? Mar 17, 2025 pm 05:28 PM

The article discusses using top, htop, and vmstat for monitoring Linux system performance, detailing their unique features and customization options for effective system management.

How do I implement two-factor authentication (2FA) for SSH in Linux? How do I implement two-factor authentication (2FA) for SSH in Linux? Mar 17, 2025 pm 05:31 PM

The article provides a guide on setting up two-factor authentication (2FA) for SSH on Linux using Google Authenticator, detailing installation, configuration, and troubleshooting steps. It highlights the security benefits of 2FA, such as enhanced sec

Methods for uploading files for common Linux commands Methods for uploading files for common Linux commands Mar 05, 2025 am 11:42 AM

This article compares Linux commands (scp, sftp, rsync, ftp) for uploading files. It emphasizes security (favoring SSH-based methods) and efficiency, highlighting rsync's delta transfer capabilities for large files. The choice depends on file size,

See all articles