温馨提示×

Linux LAMP怎样实现集群部署

小樊
66
2025-08-13 04:40:30
栏目: 智能运维

Linux LAMP集群部署需整合Linux、Apache、MySQL、PHP服务,实现高可用和负载均衡,核心步骤如下:

一、基础环境准备

  1. 服务器准备

    • 至少准备3台服务器(Web服务器、数据库服务器、负载均衡服务器),安装CentOS/Ubuntu等Linux系统。
    • 关闭防火墙或开放必要端口(HTTP/HTTPS: 80/443,SSH: 22,数据库: 3306)。
  2. 安装LAMP组件

    • Web服务器(Apache):安装httpd,启用PHP模块,配置虚拟主机。
      # CentOS示例  
      sudo yum install httpd php libapache2-mod-php -y  
      sudo systemctl start httpd  
      
    • 数据库(MySQL/MariaDB):安装数据库服务,创建集群专用数据库和用户,开启远程访问。
      sudo yum install mariadb-server -y  
      sudo systemctl start mariadb  
      sudo mysql_secure_installation  
      
    • PHP:安装PHP及扩展(如php-mysql),确保与Apache兼容。

二、集群架构搭建

1. Web服务器集群(负载均衡)

  • 方案1:基于Nginx反向代理

    • 部署Nginx作为负载均衡器,将请求分发到多台Apache服务器。
    • 配置示例(Nginx主配置文件):
      upstream lamp_cluster {  
          server 192.168.1.101:80;  # Web服务器1  
          server 192.168.1.102:80;  # Web服务器2  
          least_conn;  # 动态选择最少连接服务器  
      }  
      
      server {  
          listen 80;  
          location / {  
              proxy_pass http://lamp_cluster;  
          }  
      }  
      
    • 优势:支持七层协议,可根据URL、Cookie等智能分流。
  • 方案2:基于LVS四层负载均衡

    • 使用LVS(Linux Virtual Server)实现TCP/UDP层流量分发,适合高并发场景。
    • 配置步骤:
      1. 安装LVS工具:sudo yum install ipvsadm -y
      2. 定义虚拟服务IP(VIP)和真实服务器(RS),通过ipvsadm添加规则:
        ipvsadm -A -t 192.168.1.200:80 -s rr  # 轮询策略  
        ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101:80 -m  # 添加Web服务器1  
        ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102:80 -m  
        

2. 数据库集群(高可用)

  • 主从复制(读写分离)

    • 配置MySQL主服务器(写操作)和从服务器(读操作),通过binlog同步数据。
    • 步骤:
      1. 主服务器修改配置:sudo vim /etc/my.cnf,添加server-id=1,开启log-bin
      2. 从服务器配置:server-id=2,指定主服务器IP和端口。
      3. 执行同步命令:mysql> CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='repl_user', MASTER_PASSWORD='密码';
      4. 启动从服务器:mysql> START SLAVE;
  • 数据库集群方案(可选)

    • 使用MySQL Cluster或Galera Cluster实现多节点数据同步,适合金融级高可用场景。

三、共享存储与数据同步

  • NFS共享Web文件

    • 配置NFS服务器,将Web根目录(如/var/www/html)共享给所有Web节点,确保内容一致。
    • 客户端挂载命令:sudo mount -t nfs nfs服务器IP:/共享目录 /var/www/html
  • 配置同步(可选)

    • 使用rsynclsyncd同步配置文件(如Apache虚拟主机配置),避免手动修改多台服务器。

四、安全与优化

  1. 防火墙配置

    • 仅开放必要端口(HTTP/HTTPS/SSH/数据库端口),关闭其他端口。
    • 示例(CentOS firewalld):
      sudo firewall-cmd --permanent --add-service=http --add-service=https  
      sudo firewall-cmd --reload  
      
  2. 性能优化

    • 启用Apache的mod_deflate压缩静态资源,减少传输延迟。
    • 配置MySQL缓存(如query_cache_size)提升查询效率。

五、验证集群功能

  1. 通过负载均衡器访问集群,检查请求是否被正确分发到不同Web服务器。
  2. 在数据库中写入数据,验证主从复制是否生效(从服务器可查询到主服务器的数据)。
  3. 模拟单点故障(如关闭一台Web服务器),确认集群自动切换至其他节点。

参考资料

  • 负载均衡配置:
  • NFS共享存储:
  • MySQL主从复制:

0