运维

运维

Products

当前位置:首页 > 运维 >

如何巧妙地在Ubuntu上用Nginx搭建高效负载均衡系统?

96SEO 2025-09-01 12:25 3


因为网站的访问量和数据量的不断增长,服务器负载均衡成为了一个重要的解决方案。Nginx作为一款高性能的Web服务器,不仅可以作为反向代理服务器,还可以实现负载均衡。本文将详细介绍如何在Ubuntu系统上配置Nginx实现高效负载均衡。

1. 安装Nginx

先说说我们需要在Ubuntu系统上安装Nginx。

Nginx在Ubuntu上的负载均衡实现
sudo apt update
sudo apt install nginx

2. 配置Nginx作为负载均衡器

安装Nginx后接下来需要配置Nginx以实现反向代理和负载均衡。编辑Nginx的默认配置文件或创建一个新的配置文件。通常,配置文件位于 /etc/nginx//etc/nginx/sites-available/ 目录下。

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
            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;
        }
    }
}

在这个配置中,我们创建了一个名为“backend”的上游,包含三个后端服务器地址。主服务器将请求转发到这些后端服务器中。

3. 启用Nginx配置文件

如果创建了一个新的配置文件, 比方说 /etc/nginx/sites-available/myapp你需要启用它:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/

4. 测试Nginx配置

在启用配置文件之前,建议先测试Nginx配置是否正确:

sudo nginx -t

如果没有错误,重新加载Nginx以应用更改:

sudo systemctl reload nginx

5. 配置防火墙

确保你的防火墙允许HTTP和HTTPS流量。如果你使用的是 ufw 可以这样配置:

sudo ufw allow 'Nginx Full'

6. 测试负载均衡

现在你可以负载均衡。Nginx应该会将请求分发到后端服务器。

在Ubuntu的浏览器中访问 http://yourserverip然后刷新几次查看后来啊。

7. 负载均衡算法

Nginx支持多种负载均衡算法, 包括轮询、加权轮询、ip_hash等。

http {
    upstream backend {
        ip_hash;
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
            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;
        }
    }
}

ip_hash算法根据客户端IP地址将请求分发到不同的后端服务器,确保来自同一客户端的请求总是发送到同一后端服务器。

8. 高可用负载均衡

为了提高系统的可用性,可以使用Keepalived配合Nginx实现高可用负载均衡。

! Configuration File for keepalived
global_deftargets 0
global_routes 1
global_vrrp_script 1
global_vrrp_ipaddress 192.168.0.99
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_rtr 192.168.0.99
    virtual_ipaddress 192.168.0.99
    track_script 1
}
script chk_nginx {
    script_user root
    check_command /usr/local/bin/check_nginx.sh
}
virtual_script 1 {
    script chk_nginx.sh
}

check_nginx.sh 文件中,你可以根据需要编写Nginx健康检查的脚本。

9.

和配置策略。

注意:本文仅供参考,具体配置可能因实际情况而有所不同。


标签: ubuntu

提交需求或反馈

Demand feedback