ubuntu

Ubuntu LNMP服务器如何负载均衡

小樊
52
2025-09-25 01:21:23
栏目: 云计算

Ubuntu LNMP服务器负载均衡配置指南
负载均衡是LNMP(Linux+Nginx+MySQL+PHP)架构中提升系统性能、可用性的关键环节,主要通过Nginx反向代理实现请求分发,同时需优化PHP-FPM、MySQL等组件以匹配负载均衡需求。

一、基础环境准备

  1. 安装Nginx:确保所有服务器(负载均衡器+后端服务器)均安装Nginx,命令如下:
    sudo apt update && sudo apt install nginx -y
    
  2. 部署LNMP后端节点:每台后端服务器需安装并配置Nginx+PHP-FPM+MySQL(或仅作为应用服务器,共享同一数据库)。
    • PHP-FPM配置示例(/etc/php/7.4/fpm/pool.d/www.conf):
      [www]
      listen = /var/run/php/php7.4-fpm.sock
      pm = dynamic
      pm.max_children = 50  # 根据服务器内存调整
      pm.start_servers = 10
      pm.min_spare_servers = 5
      pm.max_spare_servers = 15
      
    • 重启PHP-FPM:sudo systemctl restart php7.4-fpm

二、Nginx负载均衡核心配置

1. 定义后端服务器组(Upstream)

在Nginx的http块中添加upstream模块,列出所有后端服务器IP或域名:

http {
    upstream backend {
        server 192.168.1.101:80;  # 后端服务器1
        server 192.168.1.102:80;  # 后端服务器2
        server 192.168.1.103:80;  # 后端服务器3
    }
    # ...
}

2. 选择负载均衡策略

Nginx支持多种策略,可根据业务需求选择:

3. 配置反向代理

server块中添加location指令,将请求转发至backend服务器组,并传递必要头部信息(如客户端真实IP):

server {
    listen 80;
    server_name example.com;

    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;
    }

    # 处理PHP请求(可选,若后端服务器直接处理PHP)
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;  # 根据实际情况调整
    }
}

4. 测试与重启Nginx

三、数据库负载均衡(可选,提升数据库性能)

若应用需要高并发数据库访问,可通过MySQL主从复制实现读写分离:

1. 主服务器配置(Master)

2. 从服务器配置(Slave)

3. Nginx配置数据库负载均衡(可选)

若需Nginx直接转发数据库请求(如API调用),可使用ngx_stream_module模块(需编译Nginx时开启),配置示例如下:

stream {
    upstream mysql_backend {
        server master_ip:3306;
        server slave_ip:3306;
    }
    server {
        listen 3306;
        proxy_pass mysql_backend;
    }
}

四、验证负载均衡效果

  1. 访问Nginx服务器:通过浏览器或curl访问http://example.com,多次刷新页面,观察请求是否分发至不同后端服务器(可通过后端服务器日志确认)。
  2. 检查PHP-FPM状态:访问http://example.com/info.php(需创建info.php文件),查看Server API是否为FPM/FastCGI,确认PHP请求被正确处理。
  3. 监控数据库复制:在从服务器执行SHOW SLAVE STATUS\G,确保Seconds_Behind_Master0(实时同步)。

五、高级优化建议

通过以上步骤,即可实现Ubuntu LNMP服务器的高效负载均衡,提升系统性能与可靠性。

0
看了该问题的人还看了