温馨提示×

在Debian上部署LNMP集群的方法

小樊
47
2025-09-07 01:11:35
栏目: 智能运维

在Debian上部署LNMP集群可参考以下步骤,分为基础环境搭建和集群配置两部分:

一、基础环境搭建(单节点)

  1. 更新系统

    sudo apt update && sudo apt upgrade -y
    
  2. 安装Nginx

    sudo apt install nginx
    sudo systemctl start nginx && sudo systemctl enable nginx
    
  3. 安装MariaDB/MySQL

    sudo apt install mariadb-server
    sudo mysql_secure_installation  # 设置root密码及安全选项
    sudo systemctl start mariadb && sudo systemctl enable mariadb
    
  4. 安装PHP及扩展

    sudo apt install php-fpm php-mysql php-gd php-curl php-mbstring
    sudo systemctl start php7.4-fpm && sudo systemctl enable php7.4-fpm
    
  5. 配置Nginx支持PHP
    编辑配置文件 /etc/nginx/sites-available/default,添加以下内容:

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    

    测试并重启Nginx:

    sudo nginx -t && sudo systemctl reload nginx
    

二、集群配置(多节点)

1. 负载均衡(Nginx)

在负载均衡节点安装Nginx,编辑配置文件 /etc/nginx/nginx.conf,添加上游服务器组:

http {
    upstream backend {
        server 192.168.1.101:80;  # 主节点IP
        server 192.168.1.102:80;  # 从节点IP
    }
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

重启Nginx:

sudo systemctl reload nginx

2. 数据库主从复制(MySQL/MariaDB)

  • 主节点配置:修改 /etc/mysql/mariadb.conf.d/50-server.cnf,设置 server-id=1,启用二进制日志:

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

    重启MySQL并创建复制用户:

    CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
    FLUSH PRIVILEGES;
    
  • 从节点配置:修改 /etc/mysql/mariadb.conf.d/50-server.cnf,设置 server-id=2,指向主节点:

    [mysqld]
    server-id = 2
    relay_log = /var/log/mysql/mysql-relay-bin.log
    read_only = 1
    

    执行复制命令:

    CHANGE MASTER TO
    MASTER_HOST='主节点IP',
    MASTER_USER='replicator',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=107;
    START SLAVE;
    

3. 高可用(可选)

  • 使用 Keepalived 实现Nginx主备切换,安装并配置虚拟IP(VIP)。
  • 使用 HAProxy 替代Nginx作为负载均衡器,支持更复杂的流量管理。

三、验证与优化

  • 测试集群功能:通过负载均衡IP访问服务,验证多节点响应一致性。
  • 监控与日志:安装Prometheus+Grafana监控集群状态,配置Nginx和MySQL日志集中管理。

注意事项

  • 生产环境需使用最新稳定版本,并根据实际需求调整配置(如PHP版本、数据库参数)。
  • 数据库主从复制需确保网络延迟低,避免数据同步延迟问题。

0