在Ubuntu上实现LNMP(Linux, Nginx, MySQL, PHP)高可用性可以通过多种方式来实现,包括负载均衡、故障转移、数据备份和监控等。以下是一些关键步骤和建议:
使用Nginx作为负载均衡器:
sudo apt update
sudo apt install nginx
/etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default),添加负载均衡配置:http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }
    server {
        listen 80;
        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;
        }
    }
}
sudo nginx -t  # 检查配置文件是否有语法错误
sudo systemctl restart nginx
使用Keepalived实现故障转移:
sudo apt update
sudo apt install keepalived
/etc/keepalived/keepalived.conf),添加以下内容:vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 42
    }
    virtual_ipaddress {
        192.168.1.100
    }
}
virtual_server 192.168.1.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP
    real_server 192.168.1.1 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            connect_port 80
        }
    }
    real_server 192.168.1.2 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            connect_port 80
        }
    }
}
sudo systemctl restart keepalived
mysqldump -u root -p --all-databases > /backup/all-databases.sql
sudo cp /etc/nginx/nginx.conf /backup/nginx.conf
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvfz prometheus-2.30.3.linux-amd64.tar.gz
cd prometheus-2.30.3.linux-amd64
./prometheus --config.file prometheus.yml
sudo apt update
sudo apt install grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
通过以上步骤,你可以在Ubuntu上实现LNMP的高可用性。请根据你的具体需求和环境进行调整和优化。