1. 负载均衡:分散流量压力
使用Nginx作为反向代理和负载均衡器,将客户端请求分发到多个后端服务器(如Nginx、PHP-FPM实例),避免单点过载。配置upstream模块定义后端服务器组,支持轮询(默认)、加权轮询(根据服务器性能分配权重)、IP哈希(确保同一客户端请求固定到同一服务器,解决会话保持问题)等算法。例如:
http {
upstream backend {
server 192.168.1.101:80 weight=3; # 权重高的服务器处理更多请求
server 192.168.1.102:80;
server 192.168.1.103:80;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
2. 数据库高可用:主从复制与故障切换
通过MySQL/MariaDB主从复制实现数据同步,当主库故障时,从库可快速接管。配置步骤:
my.cnf,启用二进制日志(log_bin=mysql-bin)、设置唯一server-id(如1),创建复制用户(repl)并授权;执行SHOW MASTER STATUS记录File和Position(用于从库同步)。my.cnf,设置唯一server-id(如2)、启用中继日志(relay_log=mysql-relay-bin);执行CHANGE MASTER TO命令指定主库信息(主机、用户、密码、File、Position),启动复制(START SLAVE)。3. PHP-FPM集群:提升应用处理能力
部署多个PHP-FPM实例,通过Nginx负载均衡分发PHP请求,避免单实例瓶颈。配置多个PHP-FPM池(每个池对应一个实例),修改listen参数为socket(如/run/php/php7.4-fpm.sock)或TCP端口(如127.0.0.1:9001);在Nginx中配置upstream指向这些实例,例如:
upstream php_backend {
server unix:/run/php/php7.4-fpm.sock;
server unix:/run/php/php7.4-fpm@www1.sock;
server unix:/run/php/php7.4-fpm@www2.sock;
}
location ~ \.php$ {
fastcgi_pass php_backend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
4. 高可用保障:故障检测与自动切换
使用Keepalived实现Nginx或VIP的高可用,通过VRRP协议监控节点状态。配置主备节点:主节点state MASTER、优先级priority 100;备节点state BACKUP、优先级priority 50;关联健康检查脚本(如pgrep nginx),当主节点故障时,备节点自动接管VIP。例如:
vrrp_instance VI_1 {
state MASTER;
interface eth0;
virtual_router_id 51;
priority 100;
advert_int 1;
authentication { auth_type PASS; auth_pass 1234; }
virtual_ipaddress { 192.168.1.100; }
track_script { chk_nginx; } # 关联健康检查
}
5. 监控与告警:提前发现问题
部署监控工具(如Prometheus+Grafana)实时监控系统状态,包括:
6. 数据备份与恢复:防止数据丢失
定期备份关键数据(数据库、网站文件),使用mysqldump工具备份MySQL(mysqldump -u root -p --all-databases > full_backup.sql),使用rsync或tar备份网站文件(rsync -avz /var/www/html /backup/html)。将备份文件存储到异地(如云存储),确保灾难发生时可快速恢复。
7. 安全加固:降低攻击风险
ufw限制访问,仅允许必要端口(如HTTP 80、HTTPS 443、SSH 22);PermitRootLogin no)、使用密钥对认证;listen 443 ssl),保护数据传输安全。