linux

LNMP集群如何实现负载均衡

小樊
44
2025-03-20 03:42:55
栏目: 云计算

在LNMP(Linux, Nginx, MySQL, PHP)集群中实现负载均衡通常涉及以下几个步骤:

  1. 配置Nginx负载均衡

例如,基本的Nginx负载均衡配置如下:

http {
    upstream backend {
        server 192.168.1.1:8000;
        server 192.168.1.2:8000;
        server 192.168.1.3:8000;
    }

    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;
        }
    }
}
  1. 配置PHP-FPM

例如,基本的PHP-FPM配置如下:

[www]
listen = /var/run/php-fpm/php-fpm.sock
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
  1. 配置MySQL

例如,基本的主从复制配置如下:

主服务器配置

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database

从服务器配置

server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_slave_updates = 1
read_only = 1
relay_log_index = /var/log/mysql/mysql-relay-bin.index
  1. 使用Keepalived和LVS实现高可用性

例如,使用Keepalived和LVS的配置示例:

LVS1的keepalived配置文件

global_defs {
    router_id Cluster1
}

vrrp_instance Nginx {
    state MASTER
    interface ens36
    virtual_router_id 51
    priority 255
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {
        192.168.1.20/24
    }
}

virtual_server 192.168.1.20 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50

    real_server 192.168.1.14 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.1.15 80 {
        weight 2
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

LVS2的keepalived配置文件

global_defs {
    router_id Cluster2
}

vrrp_instance Nginx {
    state BACKUP
    interface ens36
    virtual_router_id 51
    priority 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {
        192.168.1.20/24
    }
}

通过上述配置,可以实现LNMP集群的负载均衡和高可用性。根据实际需求,可以进一步调整和优化配置,例如增加更多的后端服务器、调整负载均衡算法等。

0
看了该问题的人还看了