溫馨提示×

Debian LAMP集群如何部署

小樊
56
2025-08-22 00:02:46
欄目: 智能運維

以下是Debian LAMP集群的部署步驟,包含基礎環境搭建與高可用性配置:

一、基礎LAMP環境部署

  1. 更新系統

    sudo apt update && sudo apt upgrade -y  
    
  2. 安裝Apache

    sudo apt install apache2  
    sudo systemctl enable --now apache2  
    
    • 驗證:訪問服務器IP,若顯示Apache默認頁面則成功。
  3. 安裝MariaDB(MySQL替代)

    sudo apt install mariadb-server  
    sudo mysql_secure_installation  # 按提示設置root密碼及安全選項  
    
    • 可選:創建數據庫和用戶
      CREATE DATABASE db_name;  
      CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';  
      GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'localhost';  
      FLUSH PRIVILEGES;  
      
  4. 安裝PHP及擴展

    sudo apt install php libapache2-mod-php php-mysql  
    sudo systemctl restart apache2  
    
    • 驗證:創建/var/www/html/info.php,內容為<?php phpinfo(); ?>,訪問確認PHP運行正常。

二、高可用性配置

1. 負載均衡(流量分發)

  • 方案1:Nginx反向代理
    安裝Nginx并配置反向代理到多臺Apache服務器:

    sudo apt install nginx  
    sudo nano /etc/nginx/sites-available/lamp_cluster  
    

    添加以下內容(替換server_ip1/2為實際服務器IP):

    upstream apache_cluster {  
        server server_ip1:80;  
        server server_ip2:80;  
    }  
    
    server {  
        listen 80;  
        location / {  
            proxy_pass http://apache_cluster;  
        }  
    }  
    

    啟用配置并重啟Nginx:

    sudo a2ensite lamp_cluster  
    sudo systemctl restart nginx  
    
  • 方案2:DNS輪詢
    在DNS管理界面為域名添加多條A記錄,指向不同服務器IP,實現簡單負載。

2. 數據庫主從復制(故障轉移)

  • 主服務器配置(假設主服務器IP為master_ip):

    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf  
    

    添加以下內容:

    [mysqld]  
    server-id=1  
    log-bin=mysql-bin  
    

    重啟MariaDB:

    sudo systemctl restart mariadb  
    

    創建復制用戶:

    CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password';  
    GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';  
    FLUSH PRIVILEGES;  
    
  • 從服務器配置

    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf  
    

    添加:

    [mysqld]  
    server-id=2  
    

    重啟MariaDB后,執行復制命令:

    CHANGE MASTER TO  
        MASTER_HOST='master_ip',  
        MASTER_USER='repl_user',  
        MASTER_PASSWORD='repl_password',  
        MASTER_LOG_FILE='mysql-bin.000001',  
        MASTER_LOG_POS=154;  
    START SLAVE;  
    

    驗證復制狀態:

    SHOW SLAVE STATUS\G  
    

3. 集群管理與故障轉移

  • 使用Pacemaker+Corosync(需至少3臺服務器):
    1. 安裝集群工具:
      sudo apt install pacemaker corosync pcs  
      sudo systemctl enable --now corosync pcsd  
      
    2. 配置集群節點(在所有節點執行):
      sudo pcs cluster auth node1 node2 node3 -u hacluster -p your_password  
      sudo pcs cluster setup --name lamp_cluster node1 node2 node3  
      sudo pcs cluster start --all  
      sudo pcs cluster enable --all  
      
    3. 將Apache和MariaDB服務加入集群:
      sudo pcs resource create apache systemd:apache2 op monitor interval=30s  
      sudo pcs resource create mysql systemd:mariadb op monitor interval=30s  
      sudo pcs constraint colocation add mysql apache INFINITY  
      sudo pcs constraint order start mysql then start apache  
      

4. 監控與安全

  • 監控工具
    • 安裝Prometheus+Grafana監控服務器狀態:
    • 使用Nagios監控服務進程:
  • 安全加固
    • 配置防火墻(ufw)限制端口:
      sudo ufw allow 'Apache Full'  
      sudo ufw deny in on eth0 from any to any port 3306  # 限制數據庫端口僅允許可信IP  
      
    • 定期備份數據與配置文件:
      sudo tar -czvf /backup/lamp_backup_$(date +%F).tar.gz /var/www /etc/apache2 /etc/mysql  
      

三、驗證集群功能

  1. 訪問負載均衡器IP,確認流量分發到多臺Apache服務器。
  2. 模擬主服務器故障(如關閉主節點),觀察從節點是否自動接管數據庫服務。

說明

  • 小規模集群可簡化配置,僅使用Nginx負載均衡+MariaDB主從復制;
  • 大規模生產環境建議采用Pacemaker集群管理,結合云存儲實現數據冗余。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女